sorket服务端
from socket import * 导入socket套接字
from threading import Thread 线程
def recv_data(client_socket,client_info): #接收客户端消息
while True:
recv_data=client_socket.recv(1024)
recv_content = recv_data.decode('gbk')
print(f'客户端说:{recv_content},来自:{client_info}')
if recv_content == "end":
print('结束消息')
break
client_socket.close() #接收后关闭避免其他客户端无法访问
def send_data(client_socket,client_info):
while True:
msg = input('>')
client_socket.send(msg.encode('gbk'))
if msg == 'end':
print('结束发消息')
break
client_socket.close()
if __name__ == '__main__':
server_socket = socket(AF_INET,SOCK_STREAM)
server_socket.bind(("192.168.8.143",8899)) #ip 和端口
server_socket.listen(5)
print('等待连接')
while True:
client_socket, client_info = server_socket.accept()
print("一个客户端建立连接成功!")
t = Thread(target=recv_data,args=(client_socket,client_info))开启线程
t2 = Thread(target=send_data,args=(client_socket,client_info))
t .start()
t2.start()
sorket客户端
from socket import *
from threading import Thread
def recv_data():
while True:
# 接收服务器端数据
recv_data = client_socket.recv(1024)# 最大接收1024字节
recv_content = recv_data.decode("gbk")
print(f"服务器端说:{recv_content}")
if recv_content == "end":
print("结束接收消息")
break
client_socket.close()
def send_data(): #发消息
while True:
msg = input(">")
client_socket.send(msg.encode("gbk"))
if msg == "end":
break
if __name__ == '__main__':
client_socket = socket(AF_INET,SOCK_STREAM)
client_socket.connect(("192.168.8.143",8899))
t1 = Thread(target=recv_data) #线程
t2 = Thread(target=send_data)
t1.start()
t2.start()
t1.join()
t2.join()
client_socket.close()