您的位置:首页 > 编程语言 > Python开发

python3:利用socket建立的一个简单的聊天client端和server端实例

2018-06-10 16:03 639 查看

利用socket建立一个简单的聊天client端和server端, 通过这个实例,可以加强学习了解socket的工作机制。

效果如下图:


server端代码如下:
#!/user/bin/env python
#-*- coding:utf-8 -*-

import socket

#待bind的ip/port
ip_port = ('127.0.0.1', 9999)
#建立socket
s = socket.socket()
#绑定ip/port
s.bind(ip_port)
#监听连接
s.listen()
print('等待用户连接中... ...')
while(True):
#建立连接后,将accept()返回的元组赋值给conn, addr
conn, addr = s.accept()
if conn is not None:
print('有一个用户已连接.\n等待对方发送信息.')
while(True):
try:
recv_data = conn.recv(1024)
#显示接收的信息
print('对方发送的信息:', str(recv_data, encoding = 'utf-8'))
send_data = input('我回复>>').strip()
conn.send(bytes(send_data, encoding = 'utf-8'))
print('等待对方发送信息>>')
except Exception:
print('远程主机强迫关闭了一个现有的连接,续继等待其它的连接。')
break
conn.close()
客户端代码如下:
#!/user/bin/env python
#-*- coding:utf-8 -*-

import socket

#待建立连接HOST的ip/port
ip_port = ('127.0.0.1', 9999)
#建立socket
s = socket.socket()
#建立连接
s.connect(ip_port)
while(True):
#待发送的信息
send_data = input('给对方发送信息:').strip()
s.send(bytes(send_data, encoding = 'utf-8'))
print('等待对方回复:')
#接收信息并显示
recv_data = s.recv(1024)
print('你有新的消息:', str(recv_data, encoding = 'utf-8'))
s.close()

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: