一、网络编程定义
二、网络编程三要素
电脑IP(电脑的地址),端口号(电脑上的软件),协议(网络传输的规则)
IP
IPV4
InetAddress
端口号
协议
我们的代码在应用层,代码写好后,将代码传入到本设备的物理层,并解析成二进制,再通过物理层传输给另一台设备的物理层,另一台设备解析后再传入到自己设备的应用层,完成数据传输。
UDP:网络会议、视频通话、在线视频
TCP:下载软件、文字聊天、发送邮件
UDP通信程序
先运行接收数据的程序,再运行发送数据的程序;
从哪个接口发送无所谓,重点是发到哪个接口以及从哪个接口接收要保持一致
ds.receive(dp);是阻塞的,执行到这一步时,会在这里死等,等待发送端发送消息
综合练习:
发送端:
接收端:
UDP三种通信方式
组播:
发送端代码:
可写多个接收端,多个接收端都能收到信息代码:
广播:
发送端代码:
TCP通信程序
客户端发送数据:
os.write("hello".getBytes());//如果把hello改成中文,那么服务端接收的时候就会产生乱码
服务器接收数据:
若要进行中文的传递,那么应该改成:用字符流来接收信息
若想提高传递的效率,那么应该改成:用bufferedReader来接收
程序先运行服务端;
通过客户端和服务器建立对象,两者之间就建立了联系,就建立的联系通道,三次握手协议保证连接建立;
IO流在连接通道里面;
四次挥手协议断开连接,而且保证连接通道中的数据已经处理完毕了
TCP通信程序(三次握手)
TCP通信程序(四次挥手)
综合练习
1、
服务器:
客户端:
2、
注意:结束标记!!!
3、
客户端:
服务器:
4、
生成随机字符串:
修改服务端的代码:
5、
服务端:
多线程:
客户端:
6、
服务端:
客户端和线程和上面一样,没有做修改
7、
浏览器:
服务端: