从java网络编程学起(4)
来源:互联网 发布:黑客技术软件 编辑:程序博客网 时间:2024/05/21 19:15
TCP程序设计
了解socket与serverScoket类的作用
掌握ECHO程序的开发
将多线程应用在TCP程序上实现多用户操作
TCP程序设计
在java中使用Socket及套接字 完成TCP程序的开发
使用此类可以方便建立可靠的,双向的,持续的,点对点的通讯通讯连接
在SCOKET的程序开发中,服务器端使用ServerSocket等待客户端的连接
输出
运行结果:服务器运行,等待客户端连接。
了解socket与serverScoket类的作用
掌握ECHO程序的开发
将多线程应用在TCP程序上实现多用户操作
TCP程序设计
在java中使用Socket及套接字 完成TCP程序的开发
使用此类可以方便建立可靠的,双向的,持续的,点对点的通讯通讯连接
在SCOKET的程序开发中,服务器端使用ServerSocket等待客户端的连接
对于java的网络程序来讲 每一个客户端都是用一个Socket对象
在java的网络程序中 客户端只要符合连接的通讯协议那么服务器都可以接受
1.serverScoket类
第一个TCP程序
下面通过ServerSocket类以及Socket完成一个服务器程序开发此服务
客户端输出hello字符串信息 一般分为客户端和服务器端
服务器端
package KownClass ;import java.net.* ;import java.io.* ;public class HelloServer{public static void main(String args[]) throws Exception {// 所有异常抛出ServerSocket server = null ;// 定义ServerSocket类Socket client = null ;// 表示客户端PrintStream out = null ;// 打印流输出最方便server = new ServerSocket(8888) ;// 服务器在8888端口上监听System.out.println("服务器运行,等待客户端连接。") ;client = server.accept() ;// 得到连接,程序进入到阻塞状态String str = "<pre name="code" class="java">JDK 在工作中" ;// 表示要输出的信息out = new PrintStream(client.getOutputStream()) ;out.println(str) ;// 向客户端输出信息client.close() ;server.close() ;}};
客户端
package KownClass;import java.net.* ;import java.io.* ;public class HelloClient{public static void main(String args[]) throws Exception {// 所有异常抛出Socket client =new Socket("localhost",8888) ;BufferedReader buf =new BufferedReader(new InputStreamReader(client.getInputStream())) ;String str = buf.readLine() ;System.out.println("服务器端输出内容:" + str) ;buf.close() ;client.close() ;}};
输出
JDK 在工作中
其实原理很简单 就是socket服务器在等你连接 为你准备好了返回信息 在你未连接前一直是阻塞情况
等secket客户端 找到主机名和端口 将信息读入 就会输出一些东西(JDK在工作中)....同时你们会发现 他只会接受一次....
2案例 Echo程序(聊天程序)
他是一个网络编程通讯交互的一个经典案例称为回应程序
既客户端输入哪些内容 服务器端会在这里内容钱加上Echo并将信息发挥另一个客户端
当客户端没有输入信息 或者输入bye的时候表示程序运行结束需要结果当前客户端程序
EchoServer可以一直接受客户端请求 而不是一次
package KownClass ;import java.net.* ;import java.io.* ;public class EchoServer{public static void main(String args[]) throws Exception {// 所有异常抛出ServerSocket server =new ServerSocket(8888) ;// 服务器在8888端口上监听Socket client = null ;// 表示客 户端BufferedReader buf = null ;// 接收输入流PrintStream out = null ;// 打印流输出最方便boolean f = true ;// 定义个标记位while(f){System.out.println("服务器运行,等待客户端连接。") ;client = server.accept() ;// 得到连接,程序进入到阻塞状态out = new PrintStream(client.getOutputStream()) ;// 准备接收客户端的输入信息buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;boolean flag = true ;// 标志位,表示可以一直接收并回应信息while(flag){String str = buf.readLine() ;// 接收客户端发送的内容if(str==null||"".equals(str)){// 表示没有内容flag = false ;// 退出循环}else{if("bye".equals(str)){// 如果输入的内容为bye表示结束flag = false ;}else{out.println("ECHO : " + str) ;// 回应信息}}}client.close() ;}server.close() ;}};
运行结果:服务器运行,等待客户端连接。
客户端
package KownClass;import java.net.* ;import java.io.* ;public class HelloClient{public static void main(String args[]) throws Exception {// 所有异常抛出Socket client = null ;// 表示客 户端client = new Socket("localhost",8888) ;BufferedReader buf = null ;// 一次性接收完成PrintStream out = null ;// 发送数据BufferedReader input = null ;// 接收键盘数据input = new BufferedReader(new InputStreamReader(System.in)) ;buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;out = new PrintStream(client.getOutputStream()) ;boolean flag = true ;// 定义标志位while(flag){System.out.print("输入信息:") ;String str = input.readLine() ;// 接收键盘的输入信息out.println(str) ;if("bye".equals(str)){flag = false ;}else{String echo = buf.readLine() ;// 接收返回结果System.out.println(echo) ;// 输出回应信息}}buf.close() ;client.close() ;}};
0 0
- 从java网络编程学起(4)
- 从java网络编程学起(1)
- 从java网络编程学起(2)
- 从java网络编程学起(3)
- java 从dota 学起
- 学PYTHON编程时,是从2.X学起还是从3.X学起?
- 从今天起好好学算法+java
- 从基础学起
- 学VBSCRIPT从学起
- 以前我没学过编程 请问编程从那里学起
- 要从基础学起..
- 从设计模式学起
- 先从Karrigell学起
- 从C开始学起
- protocol buffer从0学起(一)
- 高web网页制作,学java,该从何学起?
- 是Basic还是C 不知道从何学起 想学习编程
- 准备投身网游服务端编程,苦于不知从你何学起,但我决不放弃!
- mysql中的 skip-name-resolve 问题
- easyui 分页
- WebPartManager与SQL
- SQL Server雨情处理自动补数据
- 拿来主义!最火的iOS开源项目(二)
- 从java网络编程学起(4)
- Xcode 模拟器黑屏或闪退解决方法
- 拿来主义!最火的iOS开源项目(三)
- ios项目适配ios6 ios7
- SSH的认证终结(无需密码的git操作或者ssh链接无需密码)
- 怎么处理PM与工程师之间的问题
- 有头绪?没头绪!
- 【索引】Elementary Skills
- Web服务架构之路--RPC服务框架svr_platform(Java平台)