Python实现最简单的双人聊天程序
程序员文章站
2022-05-20 12:17:22
...
该程序分为服务器端和客户端,两者都是基于TCP协议来进行通信的。
1、服务器端
#coding:utf-8
#导入相关包
import socket
import sys
import time
ISOTIMEFORMAT='%Y-%m-%d %X' #时间格式
host='' #本机ip
port=8888 #端口号
#创建流式套接字
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#设置端口复用
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
#绑定(ip,port)
s.bind((host,port))
#监听套接字
s.listen(5)
print 'runing...'
#接受客户端连接
ClientSock,ClientAddr=s.accept()
print '%s connected.'%(str(ClientAddr))
while 1:
try:
#接收消息
buf=ClientSock.recv(1024)
if len(buf): #消息长度大于0则输出
print "he say: "+buf
data=raw_input("I say: ") #等待用户控制台输入
#格式化当前时间
send_time=time.strftime(ISOTIMEFORMAT,time.localtime())
#发送消息
ClientSock.sendall(data+'[%s]'%(send_time))
except:
print "Dialogue Over"
ClientSock.close() #关闭套接字
sys.exit(0) #退出程序
2、客户端
#coding:utf-8
#导入相关包
import socket
import sys
import time
ISOTIMEFORMAT='%Y-%m-%d %X' #时间格式
host='127.0.0.1' #本机地址
port=8888
#创建流式套接字
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
#连接套接字
s.connect((host,port))
except socket.gaierror,e:
print "Address-related error connecting to server:%s"%e
# 1表示非正常退出程序,退出程序是告诉解释器(os)的
sys.exit(1)
except socket.error,e:
print "Connection error:%s"%e
sys.exit(1)
while 1:
try:
#等待用户控制台输入
data=raw_input("I say: ")
#发送消息的时间
send_time=time.strftime(ISOTIMEFORMAT,time.localtime())
#向服务器发送消息
s.send(data+'[%s]'%(send_time))
#从服务器接收消息
buf=s.recv(1024)
if len(buf): #消息长度大于0则输出
print "he say: "+buf
except: #异常处理
print "Dialogue Over"
s.close() #关闭套接字
sys.exit(0) #0表示正常退出程序
运行结果如下图所示
上一篇: [转]Javascript重载
下一篇: 香蕉结婚
推荐阅读
-
python实现简单socket程序在两台电脑之间传输消息的方法
-
使用Python的Tornado框架实现一个一对一聊天的程序
-
解析:通过php socket并借助telnet实现简单的聊天程序_php技巧
-
Python设计足球联赛赛程表程序的思路与简单实现示例
-
python操作小程序云数据库实现简单的增删改查功能
-
Python设计足球联赛赛程表程序的思路与简单实现示例
-
python的tkinter布局之简单的聊天窗口实现方法
-
使用Python的Tornado框架实现一个一对一聊天的程序
-
python操作小程序云数据库实现简单的增删改查功能
-
浅谈插入排序算法在Python程序中的实现及简单改进