- 浏览: 211012 次
- 性别:
- 来自: 河南省
文章分类
最新评论
-
l379101003:
引用[code="java"]
spring mvc 接入微信公众平台 注解方式的写法 -
jtmjx:
你好,我也做了一个,可是Get与微信对接校验的可以,但是POS ...
spring mvc 接入微信公众平台 注解方式的写法 -
ileson:
windows mysql服务问题很奇怪,有可能建议大家迁移到 ...
MySql 使用总结
前言:
学习java 网络编程预备知识 socket、数据流、线程。
前两个都很容易解决,线程这块要下点功夫,还好java对这块有天生的优势。
学socket 之前要看一下tcp/udp 传输层协议,理解起来会有帮助,学数据流之前看一下 装饰模式 会对你成长大有裨益,学习线程之前还是先买本书吧。呵呵。
废话不说了,简单的例子,以激发自己学习兴趣:
怎么样?
是不是感觉咱们一直用的tomcat 你也会写了?呵呵,继续努力吧,说不定下一代高性能服务器软件由你开发!
------------------
服务器端:NetServer.java
客户端:NetClient.java
学习java 网络编程预备知识 socket、数据流、线程。
前两个都很容易解决,线程这块要下点功夫,还好java对这块有天生的优势。
学socket 之前要看一下tcp/udp 传输层协议,理解起来会有帮助,学数据流之前看一下 装饰模式 会对你成长大有裨益,学习线程之前还是先买本书吧。呵呵。
废话不说了,简单的例子,以激发自己学习兴趣:
import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 运行方法: 运行此类后,打开浏览器,地址栏中输入“http://127.0.0.1:8888”就可以看到效果! * * @author Administrator */ public class WebServer { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); while (true) { Socket s = ss.accept(); Service sc = new Service(s); Thread th = new Thread(sc); th.start(); } } catch (IOException e) { e.printStackTrace(); } } } /** * * 提供多线程服务 * @author Administrator * */ class Service implements Runnable { private Socket socket = null; public Service(Socket s) { this.socket = s;//new 对象时传递 Socket 对象 } @Override public void run() { try { PrintWriter pw = new PrintWriter(socket.getOutputStream()); pw.println("HTTP/1.0 200 OK");//封装http协议头 pw.println("Content-Type:text/html;charset=utf-8");//继续封装协议头 pw.println(); pw.println("<h1>Test Web Server Success!</h1>");//内容 pw.flush(); pw.close(); } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
怎么样?
是不是感觉咱们一直用的tomcat 你也会写了?呵呵,继续努力吧,说不定下一代高性能服务器软件由你开发!
------------------
服务器端:NetServer.java
package com.leson.net; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class NetServer { /** * 主线程。提供服务。 * @param args */ public static void main(String[] args) { NetServer ns = new NetServer(); ns.doListen(); } /** * 监听客户端socket发来的数据 */ public void doListen() { try { ServerSocket ss = new ServerSocket(12345); while (true) { Socket s = ss.accept(); new Thread(new Service(s)).start(); } } catch (IOException e) { System.out.println("doListen() throw error!"); e.printStackTrace(); } } } /** * 实现多线程。 * @author Administrator * */ class Service implements Runnable { private Socket socket = null; public Service(Socket socket) { this.socket = socket;// 函数构造时,初始化属性。 } /** * 逻辑代码,处理每个线程socket 的数据。 */ @Override public void run() { DataInputStream dis = null; try { dis = new DataInputStream(socket.getInputStream()); byte[] bytes = new byte[1024]; int n = dis.read(bytes); System.out.println(new String(bytes, 0, n)); } catch (IOException e1) { System.out.println("run() throw error!"); e1.printStackTrace(); } } }
客户端:NetClient.java
package com.leson.net; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; public class NetClient { /** * 发送数据 */ public static void sendData(String sendStr) { DataOutputStream dos = null; Socket s = null; try { s = new Socket("127.0.0.1", 12345); dos = new DataOutputStream(s.getOutputStream()); dos.write(sendStr.getBytes()); dos.close(); s.close(); } catch (IOException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { sendData("abcd|123456|张三李四手顶替"); } }
发表评论
-
web app native app hybrid app 简单区分
2014-10-31 19:54 826一、web app 简单入门 android we ... -
spring mvc 接入微信公众平台 注解方式的写法
2014-05-25 21:10 24424package com.meiparty.controll ... -
java 框架学习笔记
2014-05-17 21:21 639一、 mybatis3.2 1、遇到的一个问题:log4j 打 ... -
java 问题总结
2014-04-15 10:23 6220x001: An internal error occurr ... -
javah 生成头文件时报找不到类路径的解决办法
2013-09-04 22:11 1573一、问题描述: 用javah 生成头文件时,总是报错。 ... -
tomcat jvm调优
2013-04-23 19:01 847一、生产环境,性能测试。 环境概述: os:centos 6. ... -
CentOS 搭建各种服务
2013-01-12 01:52 1236一、安装JDK JDK下载地址: http://www.or ... -
sqlite 入门备忘
2012-08-19 17:34 1789初识sqlite 翻了好多资料。终于搞明白怎么回事了,记录一下 ... -
(转)JAVA的18条BASE
2010-01-08 16:03 145引用关于Java的基础知识 ... -
date 转成String ,String 转成date
2010-01-26 12:45 1258//Date类型转换为String Date now = ne ... -
java jdbc 事务管理
2010-02-04 10:27 1097切记:无论hibernate还是jdbc的事务控制都应在ser ... -
jstl/el 备忘
2010-02-04 10:57 763一、三目运算: ${p.QC_STAT==0?"& ... -
java struts1.2 MappingDispatchAction 对明细列表操作时让其停留在明细列表页面
2010-02-24 11:11 712中心思想:把展现明细所需条件一定要拼完整。MappingDis ... -
java 线程入门(备忘)
2010-04-06 09:37 703零、一些概念 共享变量:一个变量在多个线程的工作内存中 ... -
form表单 批量新增
2010-04-08 16:52 1117基本上网上全是转自他的文章:呵呵备忘! http://www ... -
java 数据源的选择
2010-04-23 17:12 745C3P0 dbcp druid -
Spring 框架
2010-06-03 18:43 840其它框架可以不学,但这个spring 一定要看,构建企业级应用 ... -
0.3+0.3+0.3=?
2010-08-24 09:02 788在java中不等于0.9 如果让其等于0.9 java处理 ... -
java 基础
2010-06-10 18:25 953/** * 求a的n次方。 * @param a ...
相关推荐
Java网络编程
《Java网络编程》,附带《Java网络编程实例》和阅读器,欢迎下载
对java网络编程的进一步讲解,提升对java网络编程的了解
java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf
java网络编程.pdf
Java网络编程(第3版) 《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK 1.4和1.5(现在已命名为J2SE 5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)...
Java网络编程(第4版)的电子版书籍,学习java通讯技术的同学建议看一下这本书
Java网络编程期末考试复习题库+答案 java网络编程考试题目,内含有Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作),有答案
《Java网络编程(第4版)》全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写多线程服务器、加密通信、广播到本地网络,以及向服务器端程序提交数据...
Java网络编程
Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第01章 项目背景知识(共15页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第02章 用HTML+CSS实现宠物分类展现静态网页版本(共44页)....
Java网络编程实验报告.pdf
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
Java网络编程精解(孙卫琴)电子教案;Java网络编程精解(孙卫琴)电子教案
Java网络编程实践课程设计报告.pdf
最近获得的《Java网络编程实例》一书的源代码,上次在CSDN看到一个相同的资源,结果一下载打开,机子就中毒了,强烈鄙视那种上传病毒的人!
《Java网络编程实例:Java网络编程实例》一书的光盘资源,包括各章的源代码实例,需要学习的朋友看看
java网络编程实例,详细深入介绍java网络编程技术
Java网络编程 详细介绍