注意:运行代码时要优先运行服务端进入监听状态,在运行客户端,才能通信。
先来python服务端代码:
import socket
# 1、创建服务器的socket对象
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2、绑定IP和端口
tcp_server_socket.bind(("", 8899))
# 3、设置监听,客户端连接需要排队
tcp_server_socket.listen(128)
# 4、接受客户端的IP地址和端口
server_client_socket, ip_port = tcp_server_socket.accept()
print(f"客户端的IP地址和端口:{ip_port}")
# 5、接受客户端发送过来的数据 接受数据的大小 (字节)
recv_data = server_client_socket.recv(1024)
# 6、获取并打印数据长度
recv_data_length = len(recv_data)
print(f"接受到的数据的长度:{recv_data_length}")
# 7、接受客户端的信息(内容),解码
recv_content = recv_data.decode("utf-8")
print(f"接收到的客户端的信息是:{recv_content}")
# 8、服务端发送数据给客户端
send_data = "我已收到,正在处理...".encode("utf-8")
server_client_socket.send(send_data)
# 9、第一次关闭服务端与客户端的套接字,终止客户端的通信
server_client_socket.close()
tcp_server_socket.close()
现在来个客户端代码:
import socket
# 1、创建客户端的socket对象
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2、和服务端的套接字进行连接
tcp_client_socket.connect(("192.168.1.4", 8899))
# 3、客户端发送数据给服务器
send_data = "你好,我是客户端".encode("utf-8")
tcp_client_socket.send(send_data)
# 4、接受服务端发送过来的数据,并解码
recv_data = tcp_client_socket.recv(1024)
recv_content = recv_data.decode("utf-8")
print(f"接收到服务器的消息为:{recv_content}")
# 5、关闭连接
tcp_client_socket.close()
评论前必须登录!
注册