TCP的传输总是记不住,看看我这样总结有错没?
Udp和Tcp区别
连接:
Udp 面向无连接的,分为两段socket 会丢包,比如发qq群消息,你不在,别人仍然信息给你,你就会收不到
Tcp 必须建立连接 如同打电话,双发必须同时连接
下载:
Udp 有每个数据包64kb限制,用于边缓冲边看的在线电影,视频聊天
Tcp 无限制,用于下载大量数据,下载电影,游戏,确保数据完整性
安全:
Udp 不可靠
Tcp 经过3次握手,很可靠
速度:
Udp 无需建立双向连接,速度快
Tcp 需建立双向连接,速度较慢
TCP传输
第一步:
客户端:创建客户端的socket服务,指定目的主机和端口
服务端: 创建服务端的socket服务ServerSocket,并监听一个端口
客户端:Socket s = new Socket("192.168.1.61",10003);
服务端: ServerSocket ss = new ServerSocket(10003);
第二步:
客户端: 为了发送数据,应该获取socket中的输出流
客户端: OutputStream out = s.getOutputStream();
服务端: 获取链接过来的客户端对象,使用ServerSocket的accept方法
服务端: Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddres();
System.out.print(ip+".....connected");
第三步:
客户端:为了把数据写出去,写到输出流里面去,并随着网络发送到对应主机上去
服务端:客户端如果发过来数据,那么服务端要使用对应的客户端对象并获取到该客户端对象的读取流来读取发过来的数据
客户端:out.write("tcp ge men lai le".getBytes());
服务端:InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
s.close();
ss.close(); |