黑马程序员——网络编程小总结

本文详细介绍了TCP和UDP这两种网络通信协议的区别与应用场景。包括它们的特点、连接方式、并发操作实例及具体的握手流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ------- android培训java培训、期待与您交流! ----------

 

在网络中主要执行的是客户端和服务端之间的传输或者是互访

客户端向服务端发送信息,服务端收到信息后,向客户端发送接收成功的提示


我们经常能够使用客户端的并发操作等:

在上网要下载文件的时候,需要一次下载多个文件,就要用到并发
QQ空间上传照片,需要一次同时选中多个照片,之后一起上传,也用到了并发等等


UDP:面向无连接的(客户端可以在服务端不开启的情况下,进行传输),不可靠  但是速度快 ,
TCP:面向连接的(客户端向服务端传输数据时,服务端必须是开启的状态),可靠的协议,但是效率低


TCP连接建立的时候3次握手,断开连接的4次握手的具体过程

建立连接采用的3次握手协议,具体是指:
第一次握手是客户端connect连接到server,server accept client的请求
之后,
向client端发送一个消息,相当于说我都准备好了,你连接上我了,这是第二次握手,
第3次握手就是client向server发送的,就是对第二次握手消息的确认。
之后client和server就开始通讯了。

断开连接的4次握手,具体如下:
断开连接的一端发送close请求是第一次握手,
另外一端接收到断开连接的请求之后需要对close进行确认,发送一个消息,这是第二次握手,
发送了确认消息之后还要向对端发送close消息,要关闭对对端的连接,这是第3次握手,
而在最初发送断开连接的一端接收到消息之后,进入到一个很重要的状态time_wait状态,
最后一次握手是最初发送断开连接的一端接收到消息之后。对消息的确认。

UDP:

客户端:
DatagramSocket ds=new DatagramSocket(8888);
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);
ds.send(dp);  //通过send方法将数据包发出去

接收端:

DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];//定义数据包,用于存储收到的数据
DatagramPacket dp=new DatagramPacket(buf,buf.length);
ds.receive(dp);//通过receive方法将收到的数据存储

TCP:
客户端:
Socket s=new Socket("192.168.1.109",10003);
OutputStream out=s.getOutputStream();//为了发送数据,应该获取socket流中的读取流
out.write("tcp wo lai le ".getBytes());//向流中写入数据

服务端:
ServerSocket ss=new ServerSocket(10003);//创建Server服务,并监听一个端口 
Socket s= ss.accept(); //获取连接过来的客户端对象   使用accept方法
InputStream in=s.getInputStream();//获取客户端发过来的数据,那么要使用客户端的读取流对象

 

 

 

 ------- android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值