三大部分:协议、ip地址、端口号
1.TCP与UDP
简单来说,
UDP: 无连接通信协议。 用户一发送时不用确认用户二是否存在 用户二接收后也不用回复。耗资小 效率高,可能会出现数据的丢失
TCP:面向连接 可靠的无差错的数据传输 三次握手。
计算机 通过ip地址找到对方的计算机,通过端口号找到对应的软件、网址等……
服务器端没有IO流,所以要获取到请求的客户端对象Socket来和客户端进行交互
TCP通信原理
客户端Socket实现步骤:
服务器端
模拟像服务器端发送文件:
注意客户端 socket.shutdownOutput();
这一句是为了每次写完数据后都能以-1结尾,没有这句的话服务器端读不到-1,程序会一直运行。
文件上传的优化:
主要是服务器端,新增了自定义文件命名规则,使得可以上传多个文件且不会被覆盖;使用了多线程来提高文件上传效率;让服务器一直处于监听状态(死循环accept),这样客户端能一直上传文件,每运行一次上传一次,且不会被覆盖)