目标:学会编写 TCP 服务端网络程序(LINUX主机内),从而与客户端(网络调试助手)进行网络通信
一:编写 TCP 服务端网络程序,其中调试助手充当客户端向服务端进行通信
功能:实现服务端(LINUX主机)与客户端(网络调试助手)的网络通信
代码实现流程(服务端):导入模块→创建TCP套接字→绑定服务端ip以及端口→监听客户端的连接(被动监听)→等待接受客户端连接→收发数据→关闭两个套接字
注意事项:
1:因为服务端是等待客户端的连接(被动连接),所以要向客户端提供 ip 与端口号,故服务端必须要利用 bind()方法绑定 ip 与端口号
2:监听客户端的连接是利用套接字的 listen(num)方法,其中括号里面的 num 代表允许连接的最大客户端数,开启监听连接后此套接字将不再能接收发送数据(被动模式)!且 num 对 windows 系统有效,对 linux 系统无效!
3:接受客户端的连接是利用套接字的 accept()方法,建立连接成功后,即可进行通信
4:套接字的 accept()方法是接受客户端的连接,如果没有客户端进行连接,程序会造成阻塞,直到有客户端的连接,客户端连接成功后将返回一个元组,第一个数据是新的套接字,第二个是客户端的ip以及端口号
5:刚开始创建的套接字在 listen(num)方法下变为被动模式,不能接收与发送数据,这个套接字只负责与客户端的连接问题,因此在利用套接字的 accept()方法接收一个客户端的连接后,会产生一个新的套接字用于和客户端进行通信!并且有一个额外的客户端与服务器连接,就会产生一个**新的套接字
快速代码体验(客户端网络调试助手截图)
服务端代码截图