想要实现网络通信那么就要有一个客户端一个服务器
客户端发送数据,服务器接收数据并返回数据
网络通信就是进程通信
所以我们用两个程序来分别编写客户端和服务器
服务器
1,设置端口号,
2、ip可以固定位127.0.0.1来用于本地测试,但一般不固定,而是让他自己获取本机的ip
3、创建套接字socket
这里的创建只相当于打开网卡文件,设置进去了网络通信的方式(个人理解),就相当于创建了一个文件,返回了他的文件描述符。
4、
服务器的话要手动把socket文件和网络套接字绑定:
首相要把网络套接字结构填充好(还没有绑定):
绑定:bind网络系统库调用:
现在这个服务器程序就有了自己网络通信的套接字(ip port)
5、接收数据:
6,发送消息,他在接收消息的时候也接收了发消息的那个客户端的套接字,就相当于知道了客户端的ip 和port,那么他就可以把消息发送回客户端
到这服务器程序就写好了:直接运行服务器:
客户端
1.客户端想要实现网络通信也要创还能socket文件:
2、不同的是客户端并不用手动代码把socket文件和字节套网络通信结构体关联,
因为在客户端发送消息的时候,系统会自动分配端口号和ip给他
3、但是他要发送消息就要知道要发送给的那个服务器的套接字(ip port),所以还是需要填写一个套接字结构体来把服务器的 ip port填写进去
以供发送
4、他也可以接收服务器发来的消息
到这就基本实现了服务器和客户端网络通信的测试了
详细代码:
Udp_socket