网络编程就是如何在程序中实现两台计算机的通信。
通信的时候,双方必须知道对方的标识,好比发邮件必须知道对方的邮件地址。互联网上每个计算机的唯一标识就是IP地址。如果一台计算机同时接入到两个或更多的网络,比如路由器,它就会有两个或多个IP地址,所以IP地址对应的实际上是计算机的网络接口,通常是网卡。
服务器端方法:
![](https://img.haomeiwen.com/i11483058/e91c777c5b51ea29.png)
客户端方法:
![](https://img.haomeiwen.com/i11483058/8bfdbe74755d38b1.png)
其他公共常用方法:
![](https://img.haomeiwen.com/i11483058/394ec7cab7b5b7d4.png)
一、TCP编程
创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器;
1、客户端
创建Socket时,AF_INET是指使用IPv4协议,如果要用更先进的IPv6就使用AF_INET6;SOCK_STREAM是指使用面向流的TCP协议;
Socket对象就创建成功后,需要建立连接。客户端要主动发起TCP连接,必须知道服务器的IP地址和端口号;
建立TCP连接后,可以接收服务端发来的数据,也可以向服务端发送数据,最后调用close()方法关闭Socket。
![](https://img.haomeiwen.com/i11483058/c75c598f6acdbef3.png)
2、服务端
服务器首先要绑定一个端口并监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Socket连接,随后的通信都靠这个Socket连接。
![](https://img.haomeiwen.com/i11483058/98f524543fa4609c.png)
二、UDP编程
UDP是面向无连接的协议,使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。
1、服务端
创建Socket时,SOCK_DGRAM是指这个Socket的类型是UDP。不需要调用listen()方法监听,而是直接接收来自任何客户端的数据。
![](https://img.haomeiwen.com/i11483058/d2318d0d60cc7658.png)
2、客户端
创建基于UDP的Socket,与服务端方法一样,但是不需要调用connect(),而是直接通过sendto()给服务器发数据。
![](https://img.haomeiwen.com/i11483058/6d6500318978f68f.png)
网友评论