Python之TCP客户端与服务端
TCP客户端
# 导入socket套接字模块
import socket
if __name__ == '__main__':
# 1.创建TCP客户端套接字
tcp_client_sockt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.和服务端建立连接, 提示: 如果建立连接成功代码才能往下执行, 输入服务端IP地址和端口号
tcp_client_socket.connect(("请换成服务端的IP地址", 9090))
# 3.准备数据
send_msg = "您好,我是客户端小白"
# 4.对发送的数据进行utf-8编码,系统不相同解码方式也不相同---看个人需求
send_data = send_msg.encode("utf-8")
print("接收服务端的数据为:", recv_content)
# 关闭套接字
tcp_client_socket.close()
TCP服务端
import socket
if __name__ == '__main__':
# 1.创建服务端socket
tcp_server_socket = socket.socket(socket.AF_INFT, socket.SOCK_STREAM)
# 2.绑定端口
tcp_server_socket.bind(("", 9090))
# 3.设置监听, 把主动套接字改成被动套接字, 服务端的socket只能接受客户端的连接请求, 不能够收发数据
# 128 : 设置的最大等待连接数据, 在单线程的情况下最多有128个人进行等待连接
tcp_server_socket.listen(128)
# 3.接收客户端的连接请求
# 提示:返回的新的套接字专门服务于客户端,客户端可以收发数据
service_client_socket, ip_port = tcp_server_socket.accept()
# 提示: accept会一直等待客户端的连接请求, 如果没有连接请求会一直等待, 有了连接请求才会解堵塞,代码继承往下执行
print(ip_port)
# 4.接收客户端的数据
recv_data = service_client_socket.recv(1024)
# 5.对接收客户端的数据进行解码
recv_content = recv_data.decode("utf-8")
print("接收客户端的数据为:", recv_content)
# 6.向客户端发送数据(直接进行了解码)
service_client_socket.send("您的请求我收到了, 正在处理中...".encode("utf-8"))
# 7. 和客户端终止服务
service_client_socket.close()
# 对外不接受客户端的连接请求
tcp_server_socket.close()
小编个人理解所写,如有见解欢迎在下方评论!!!!!!