找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3468|回复: 1

[求助] socket服务端,多线程问题

1

主题

1

帖子

1

积分

贫民

积分
1
erebus 发表于 2017-5-27 07:59:36 | 显示全部楼层 |阅读模式
我在用python做一个服务端,持续接受多个客户端传输的数据。
做了个测试,遇到个奇怪的问题,
测试中做的很简单,就是每个客户端链接上来后,打印出来客户端的ip和端口。
代码如下:
import sys
import socket  
import threading

listenTo=True  
def dealClient(client,addr):
    print(addr)
def main():
  s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
  s.bind(("0.0.0.0",9999))  
  s.listen(10)  
  while listenTo:
    try:
      client,addr=s.accept()  
      trd=threading.Thread(target=dealClient,args=(client,addr))  
      trd.start()
    except Exception,e:
      print('listen except:'+e)
  s.close()
  sys.exit()

if __name__ == '__main__':
  main()

现在问题是,第一个客户端链接上后,服务端打印地址和端口正常。
第二个客户端链接时,服务器就会持续的打印第二个客户端地址,每打印一次端口号+1,应该是服务器一直持续接收链接。
如果只有一个客户端,客户端断开再链接也是正常的。
各位大神谁帮忙分析下,谢谢!

回复

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
Chiao_Hou 发表于 2017-5-29 12:44:11 | 显示全部楼层
我运行起来没问题啊。
  1. except Exception,e:
复制代码


应该是

  1. except Exception as e:
复制代码

端口号+1 是因为你是在一台机器上进行实验的把。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表