1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python服务端对应多个客户端_Python-网络编程:TCP2 循环为多个客户端服务

python服务端对应多个客户端_Python-网络编程:TCP2 循环为多个客户端服务

时间:2022-08-27 18:19:21

相关推荐

python服务端对应多个客户端_Python-网络编程:TCP2 循环为多个客户端服务

参考代码:

客户端:

import socket

def main():

# 1.创建tcp的套接字

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.连接服务器

# tcp_socket.connect("127.0.0.1", 1897)

server_ip = input("请输入服务器ip:")

server_port = input("请输入服务器port:")

server_addr = (server_ip, int(server_port))

tcp_socket.connect(server_addr)

while True:

# 3.发送数据/接收数据

send_data = input("请输入要发送的数据:")

if send_data == 'exit' or send_data == 'quit':

break

tcp_socket.send(send_data.encode('utf-8'))

recv_data = tcp_socket.recv(1024)

print(recv_data.decode('utf-8'))

# 4.关闭套接字

tcp_socket.close()

if __name__ == "__main__":

main()

服务端:

import socket

def main():

# 1.创建一个TCP套接字

tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.绑定信息

local_addr = ("", 7890)

tcp_server_socket.bind(local_addr)

# 3.设为监听模式

tcp_server_socket.listen(128)

while True:

# 4.accept等待。返回:连接进来的客户端创建新的套接字,连接进来的客户端的地址

print("等待一个客户端的到来:")

new_socket, client_addr = tcp_server_socket.accept()

print("来自一个客户端 ", client_addr)

while True:

# 5.接收客户端数据

recv_data = new_socket.recv(1024)

# 如果recv_data解堵塞,那么有两种方式:

# (1) 客户端发送过来数据

# (2) 客户端调用close导致了这里解堵塞

#如果是空的,说明客户端关闭了

if not recv_data:

print("bye:", client_addr)

break

# 打印客户端发送来的数据

print("receive data from client is: ", recv_data.decode('utf-8'))

# 给客户端发送数据

new_socket.send("--ok--".encode('utf-8'))

# 关闭这次accpet创建的为了这次服务的套接字

new_socket.close()

# 7.关闭监听的套接字

tcp_server_socket.close()

if __name__ == "__main__":

main()

运行结果:

标签:__,socket,Python,tcp,server,TCP2,data,客户端

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。