最近在学习socket通信,用python编程,初学者。 目标是:实现多个客户端与一个服务端通信,客户端会间断发送信息(例如每隔0.2s一发送),服务器可以同时接受多个客户端信息,并处理其中一个客户端的信息将处理后的信息分发送给其余客户端 我自己做了一个小的程序,但是报错,请大神纠正 ####服务器端程序:
#!/usr/bin/env python
#coding:utf-8
import threading
import socket
import time
import sys
server = socket.socket()
server.bind(('192.168.3.79', 9999))
server.listen(6)
socks = [None]*6
print('服务器准备好了')
# print('请输入目标点坐标')
# x = input('x方向坐标:')
# y = input('y方向坐标:')
#print('接入{}个客户端准备'.format(num))
print("可以发送控制数据了")
def Threader(conn):
conn.send('已经建立连接'.encode())
time.sleep(0.2)
data = conn.recv(1024)
if not data:
conn.close()
if __name__ == '__main__':
while True:
conn,addr = server.accept()
print ('Connect by ',conn)
socks.append(conn)
t = threading.Thread(target=Threader,args=(conn,))
t.start()
####客户端程序
#!/usr/bin/env python
# coding=utf-8
import socket,sys
import time
client = socket.socket()
client.connect(('192.168.3.79',9999))
client.send('hihi I am client')
time.sleep(0.5)
data=client.recv(1024)
print('the data received is\n ',data )
结果是只能有一个客户端连入,另外一个连不进去 错误提示如下:
遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。