【发布时间】:2015-03-14 16:33:32
【问题描述】:
我正在研究一种客户端-服务器架构,其中多个客户端应将文件传输到正在运行的服务器。我想知道服务器是否可以同时在一个端口上接收来自不同客户端的输入。
到目前为止我的代码:
服务器
import socket
import time
mySocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
# EDIT: This line was added based on @Aleksander Gurin's response below. The problem persists.
mySocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
mySocket.bind( ('localhost', 1234 ) )
mySocket.listen( 2 )
channel, details = mySocket.accept()
while True:
incoming = channel.recv( 100 )
if incoming:
print "Received >%s<" % incoming
incoming = ''
客户
import sys
import socket
import time
mySocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
mySocket.connect( ('127.0.0.1', 1234) )
counter = 1
while True:
mySocket.send( "Message %03d from client %s." % (counter, sys.argv[1]) )
time.sleep(2)
counter += 1
我正在启动两个客户端实例,如下所示:
./client.py 1 &
./client.py 2 &
然而,到目前为止,我的服务器只接收来自一个客户端的输入:
Received >Message 001 from client 1.<
Received >Message 002 from client 1.<
Received >Message 003 from client 1.<
Received >Message 004 from client 1.<
Received >Message 005 from client 1.<
...
因此,我的问题是:是否也可以在服务器上接收来自第二个客户端的帖子 - 如果可以,如何接收?
P。 S.:我检查了this related SO post,但也无法真正从中提取答案。
【问题讨论】:
标签: python sockets client-server