网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
2016-03-09 22:08
891 查看
来源:http://www.bjsxt.com/
一、S02E189_01网络编程_TCP_Socket通信原理
基于tcp:面向连接 安全可靠 效率低 类似于打电话
一:面向连接:请求-响应 Request-Response
二:Socket编程
1、服务器:ServerSocket
2、客户端:Socket
二、S02E190_01网络编程_TCP_Socket通信、多个客户端、聊天室原理
一、S02E189_01网络编程_TCP_Socket通信原理
基于tcp:面向连接 安全可靠 效率低 类似于打电话
一:面向连接:请求-响应 Request-Response
二:Socket编程
1、服务器:ServerSocket
2、客户端:Socket
package com.test.net.tcp.socket; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * 必须先启动服务器后连接 * 1、创建服务器,指定端口 ServerSocket(int port) * 2、接收客户端连接,阻塞式 * 3、发送数据+接收数据 */ public class Server { public static void main(String[] args) throws IOException { //1、创建服务器,指定端口 ServerSocket(int port) ServerSocket server = new ServerSocket(8888); //2、接收客户端连接,阻塞式 Socket socket = server.accept();//这是request请求,一定时间内没有响应返回错误 System.out.println("一个客户端建立连接"); //3、发送数据 String msg = "欢迎使用"; //输出流 /* BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())); bw.write(msg); bw.newLine();//String echo = br.readLine();//阻塞式,没有行结束符,会报异常 bw.flush();//不要关闭流,服务器是24小时工作的 */ DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeUTF(msg); dos.flush(); } }
package com.test.net.tcp.socket; import java.io.DataInputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; /** * 1、创建客户端,必须指定服务器+端口,此时就在连接 Socket(String host,int port) * 2、接收数据+发送数据 */ public class Client { public static void main(String[] args) throws UnknownHostException, IOException { //1、创建客户端,必须指定服务器+端口,此时就在连接 Socket(String host,int port) Socket client = new Socket("localhost",8888); //2、接收数据 /* BufferedReader br = new BufferedReader( new InputStreamReader(client.getInputStream())); String echo = br.readLine();//阻塞式,没有行结束符,会报异常 System.out.println(echo); */ DataInputStream dis = new DataInputStream(client.getInputStream()); String echo = dis.readUTF(); System.out.println(echo); } }
二、S02E190_01网络编程_TCP_Socket通信、多个客户端、聊天室原理
package com.test.net.tcp.socket; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * 必须先启动服务器后连接 * 1、创建服务器,指定端口 ServerSocket(int port) * 2、接收客户端连接,阻塞式 * 3、发送数据+接收数据 * * 接收多个客户端 */ public class MultiServer { public static void main(String[] args) throws IOException { //1、创建服务器,指定端口 ServerSocket(int port) ServerSocket server = new ServerSocket(8888); //2、接收客户端连接,阻塞式 while(true){//死循环,一个accept()一个客户端 Socket socket = server.accept();//这是request请求,一定时间内没有响应返回错误 System.out.println("一个客户端建立连接"); //3、发送数据 String msg = "欢迎使用"; //输出流 DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeUTF(msg); dos.flush(); } } }
相关文章推荐
- Apache HTTP Server初步安装
- 使用common-fileUpload和 Spring中MultipartHttpServletRequest实现文件上传
- linux下修改tcp内核参数,提升系统性能
- 虚拟机的三种网络模式
- 第四天 网络 post get JSONObject
- 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
- linux下apache无法启动之(httpd not running, trying to st)
- [网络流24题]魔术球问题 贪心||枚举答案+最小路径覆盖
- MES案例研究2 – OPC网络阻塞
- HDU 1853Cyclic Tour(网络流之最小费用流)
- HttpServletRequest对象(一)
- 嵌入式系统网络通信
- Java网络编程——URL
- HttpServletRequest对象方法的用法
- 从输入一个URL到页面呈现,网络上都发生了什么?
- Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string
- TCP三次握手和释放
- 解决Win10创建wifi热点时出现无法启动承载网络的情况
- WebSocket 实战
- LSTM长短期记忆网络