读书人

server client解决办法

发布时间: 2013-11-12 12:10:37 作者: rapoo

server client
我想要做客端後息
我想要多客
我Client法
Server一次只能接收和送一的料

可能是因我的送和接收不能同行
是缺什??

#!/usr/bin/env python
# -*- coding: cp950 -*-

import socket
server= ''
port = 12000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((server,port))
s.listen(300)

a=0

while True:
client,addr=s.accept()
print('IP:',addr)
if a==0:data =client.recv(1024)
print("client say:",repr(data))
a=1
if a==1:text=raw_input("key number:")
client.send(text)
a=0




#!/usr/bin/env python
# -*- coding: cp950 -*-

import socket
server= '127.0.0.1'
port = 12000

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect((server,port))
a=1

while True:
if a==1:text=raw_input("key number:")
s.send(text)
a=0
if a==0:data=s.recv(1024)
print("server say:",repr(data))
a=1

[解决办法]
你主要问题是没注意accept,recv,send都是阻塞式调用,服务器卡在一个点上没法同时响应多个客户端,后面虽然改为多线程,但客户端的连接却晾在一边,基本上都乱套了。试试上述手册里第一个例子当服务器,你顶楼第一次自己写的客户端,起几个去连接,应该没问题,然后研究源码(Pythonxx/Lib/SocketServer.py),看人家怎么写的...

读书人网 >perl python

热点推荐