|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 弟大勿波 于 2018-5-18 10:20 编辑
#客户端
import socket
client = socket.socket() #声明socket类型,同时生成socket连接对象
client.connect(('localhost',6969))
while True:
msg = input(">>:").strip()
if len(msg) == 0:continue
client.send(msg.encode("utf-8"))
print(msg)
data = client.recv(10240)
print("recv:",data.decode())
client.close()
#服务器端
import socket
server = socket.socket()
server.bind(('localhost',6969)) #绑定要监听端口
server.listen(5) #监听
print("我要开始等电话了")
while True:
conn, addr = server.accept() # 等电话打进来
# conn就是客户端连过来而在服务器端为其生成的一个连接实例
print(conn, addr)
print("电话来了")
count = 0
while True:
data = conn.recv(1024)
print("recv:",data)
if not data:
print("client has lost...")
break 这一句好像没起作用
conn.send(data.upper())
count+=1
if count >10:break
server.close()
为什么客户端停止的时候服务器断在data = conn.recv(1024)这一行就报错了的。ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
本帖最后由 久疤K 于 2018-5-18 11:02 编辑
这不算是报错,是为了让服务端知道客户端已经强制关闭了。
服务端代码:
- import socket
- server = socket.socket()
- server.bind(('localhost',6969)) #绑定要监听端口
- server.listen(5) #监听
- print("我要开始等电话了")
- while True:
- conn, addr = server.accept() # 等电话打进来
- # conn就是客户端连过来而在服务器端为其生成的一个连接实例
- print(conn, addr)
- print("电话来了")
- count = 0
- while True:
- try:
- data = conn.recv(1024)
- data = data.decode()
- print("recv:",data)
- except ConnectionResetError:
- data = None
- if not data or data=='over':
- print("client has lost...")
- conn.close()
- break #这一句好像没起作用
- conn.send(data.upper().encode('utf-8'))
- count+=1
- if count >10:break
- server.close()
复制代码
客户端代码:
- import socket
- client = socket.socket() #声明socket类型,同时生成socket连接对象
- client.connect(('localhost',6969))
- while True:
- msg = input(">>:").strip()
- if len(msg) == 0:continue
- client.send(msg.encode("utf-8"))
- print(msg)
- if msg == 'over':
- client.close()
- break
- data = client.recv(10240)
- print("recv:",data.decode())
- client.close()
复制代码
|
|