Java学习总结:网络编程

三大部分:协议、ip地址、端口号

1.TCP与UDP

e78b5c08e8e84f539ccbcbc78a776837.png 

 4ac766afe9274ea7ba463182d3f5d791.png

简单来说,

UDP: 无连接通信协议。 用户一发送时不用确认用户二是否存在  用户二接收后也不用回复。耗资小 效率高,可能会出现数据的丢失

TCP:面向连接  可靠的无差错的数据传输 三次握手。

计算机 通过ip地址找到对方的计算机,通过端口号找到对应的软件、网址等……
 

服务器端没有IO流,所以要获取到请求的客户端对象Socket来和客户端进行交互

TCP通信原理

1075adebc474498ebf9681a9b2aedde4.png

客户端Socket实现步骤:

d5f4b92b91384a059c77e96d8b6b3a9f.png 

8f1ba7fd7fb24144ada54f63923d18e0.png 

服务器端

873a03f0b1d74884bb379345db44cd90.png 

模拟像服务器端发送文件:

10afc9ef51a740f5930c119191bfc3ef.png 

f3d4c0bb3e2348829d0bb140cae35aa3.png 

注意客户端 socket.shutdownOutput();

这一句是为了每次写完数据后都能以-1结尾,没有这句的话服务器端读不到-1,程序会一直运行。

文件上传的优化:

主要是服务器端,新增了自定义文件命名规则,使得可以上传多个文件且不会被覆盖;使用了多线程来提高文件上传效率;让服务器一直处于监听状态(死循环accept),这样客户端能一直上传文件,每运行一次上传一次,且不会被覆盖)

42c95e1ac45d494797f7823331da2fa9.png

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值