java实现tcp协议

我们之前已经实现了把信息发送其他计算机,清楚地认识到了这种信息传递方式(通过数据包传递)的组织形式,那么,你有没有想过,如果有一次,这个数据包因为意外,没能到达,会发生什么呢?

为了方便表述,我们可以称发送信息的一方为客户端,接受信息的一方为服务器(实际上不是这样,无论服务器还是客户端都在不停地收发信息,读者意会即可),客户端发送了一条信息,但是这条信息服务器没有收到,就会发生错误(数据包越大丢包率越高,大家可以自己测试一下丢包率),如何解决这种问题呢?udp协议给出的解决方案是服务器每收到一条信息,就回复一次客户端,已收到,客户端如果长时间没有收到服务端回答这条信息,就视这条信息为已经丢了,重新发送它。

那么,就让我们来实现它吧,首先,我们需要一个信息类。

还有一件值得一提的事情是tcp开始运作时会有一个三次握手的阶段,第一次,客户端发送一条请求给服务器(这条信息不包含任何有效信息),第二次,服务器回复客户端一条信息,表示自己已经收到这条信息(这条信息同样不包含任何有效信息),第三次,客户端回复服务器一条信息,表示自己已经收到上条信息(这条信息可以包含有效信息)
你想到怎么实现这三次握手了吗?快开始敲代码吧!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值