开发者社区> 问答> 正文

p用python实现socket通信,多客户端接入,服务器与客户端交互数据

最近在学习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 )

结果是只能有一个客户端连入,另外一个连不进去 错误提示如下: image.png

遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看

展开
收起
刘刚_ 2020-05-23 21:10:42 2685 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载