socket链接循环
Posted fmgao-technology
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket链接循环相关的知识,希望对你有一定的参考价值。
server------------------------
#!/usr/bin/env python
# encoding: utf-8
# Date: 2018/6/5
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
phone.bind((‘127.0.0.1‘, 8081))
phone.listen(5)
print(‘starting.......‘)
while True: # 链接循环,保证客户端停止,服务端不停止,但是不支持并发
conn, client_addr = phone.accept()
print(client_addr)
while True:
try: # window异常捕获
data = conn.recv(1024)
if not data: # 适用于linux
break # 客户端断掉,发送空过来
print(‘客户端的数据‘, data)
conn.send(data.upper())
except ConnectionResetError:
break
conn.close()
phone.close()
client1--------------------------
#!/usr/bin/env python
# encoding: utf-8
# Date: 2018/6/5
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.connect((‘127.0.0.1‘, 8081))
while True:
msg = input(‘>>>‘).strip()
if not msg:continue
phone.send(msg.encode(‘utf-8‘)) # 应用程序发给操作系统,操作系统调用网卡
data = phone.recv(1024)
print(data.decode(‘utf-8‘))
phone.close()
client2--------------------
#!/usr/bin/env python
# encoding: utf-8
# Date: 2018/6/5
import socket
phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
phone.connect((‘127.0.0.1‘, 8081))
while True:
msg = input(‘>>>‘).strip()
if not msg:continue
phone.send(msg.encode(‘utf-8‘)) # 应用程序发给操作系统,操作系统调用网卡
data = phone.recv(1024)
print(data.decode(‘utf-8‘))
phone.close()
以上是关于socket链接循环的主要内容,如果未能解决你的问题,请参考以下文章
Python--网络编程-----socket编程示例--打电话--加上链接循环
第六章 - 网络编程 - 1.简单的套接字通信/2.加上通信循环/3.bug修复/4.加上链接循环/5.模拟ssh远程执行命令