第二节 tcp

tcp严格区分客户端和服务器,udp则没有,tcp需要通过三次握手四次挥手来保证数据传输的安全性,而udp没有

 1 import socket
 2 
 3 def main():
 4     '''客户端'''
 5     # 1、创建套接字
 6     tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 7 
 8     # 2、连接服务器
 9     server_ip = input('请输入你要连接服务器的IP:')
10     server_port = int(input('请输入你链接服务器的端口:'))
11     server_addr = (server_ip, server_port)
12     tcp_client_socket.connect(server_addr)
13 
14     # 3、发送/接收数据
15     send_data = input('请输入你要发送的信息:')
16     tcp_client_socket.send(send_data.encode('gbk'))
17     print(tcp_client_socket.recvfrom(1024))
18 
19     # 4、关闭套接字
20     tcp_client_socket.close()
21 
22 
23 if __name__ == '__main__':
24     main()
 1 import socket
 2 
 3 def main():
 4     '''服务器'''
 5     # 1、创建套接字
 6     tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 7 
 8     # 2、绑定本地信息
 9     tcp_server_socket.bind(('192.168.0.106',7878))
10 
11     # 3、让默认的套接字有主动变成被动
12     tcp_server_socket.listen(128)
13 
14     # 128是指最大运行客户端的链接数
15     while True:
16         # 4、等待客户端的连接
17         new_client_socket, client_addr = tcp_server_socket.accept()
18         # 服务器处于阻塞状态,等待客户端连接
19         while True:
20             # 5、接收客户端发送过来的请求
21             recv_data = new_client_socket.recv(1024)
22 
23             # 如果客户端执行了close()操作,那么会返回空字符串
24             if recv_data:
25                 print(recv_data.decode('gbk'))
26             else:
27                 break
28         # 6、回送一部分数据给客户端,即响应客户端
29         # new_client_socket.send('4444'.encode('gbk'))
30 
31         # 关闭套接字
32         new_client_socket.close()
33         break
34     tcp_server_socket.close()
35 
36 
37 if __name__ == '__main__':
38     main()
原文地址:https://www.cnblogs.com/kogmaw/p/12575439.html