功能:客户端与服务端相互发送信息,并且显示接收信
服务端:
#服务器端
import socket
import threading
def recv_msg(clientsocket):
while True:
# 接受客户端消息,设置一次最多接受1024字节的数据
recv_msg = clientsocket.recv(1024)
msg = recv_msg.decode('utf-8')
# 如果用户输入了quit,就退出此对话
if msg == 'quit':
exit(0)
print('客户端: ' + msg)
def main():
socket_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host='192.168.100.94'
port=1234
socket_server.bind((host,port))
socket_server.listen(5)
clientsocket,addr=socket_server.accept()
clientsocket.send('你现在已经连接上了服务器啦,我们来聊天吧!'.encode('utf-8'))
t=threading.Thread(target=recv_msg,args=(clientsocket,))
t.start()
# 发送消息
while True:
reply=input()
clientsocket.send(reply.encode('utf-8'))
clientsocket.close()
if __name__=='__main__':
main()
客户端:
#客户端代码
import socket
import threading
#接受服务器返回的数据的函数
def recvlink(client):
while True:
msg=client.recv(1024)
print('服务器: '+msg.decode('utf-8'))
def main():
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host='192.168.100.94'
port=1234
client.connect((host,port))
start_msg=client.recv(1024)
print(start_msg.decode('utf-8'))
t=threading.Thread(target=recvlink,args=(client,))
t.start()
#发送消息
while True:
#输入要发送的信息
sendmsg=input()
#向服务器发送消息
client.send(sendmsg.encode('utf-8'))
if sendmsg=='quit':
break
#结束时关闭客户端
client.close()
if __name__ == '__main__':
main()
先启动服务器,再启动客户端
然后在客户端输入数据,回车,就可以看到服务端显示消息
同样在服务端输入数据,回车,就可以看到客户端显示消息