【发布时间】:2013-02-09 01:52:42
【问题描述】:
我正在尝试将an example 用于服务器,但客户端只能发送一条消息,然后服务器将回复一个数字。
这里是代码。
import socket
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2000 ) )
mySocket.listen ( 1 )
while True:
channel, details = mySocket.accept()
print 'We have opened a connection with', details
print channel.recv ( 100 )
channel.send ( 'Green-eyed monster.' )
channel.close()
问题:
为什么每当客户端向服务器发送消息时,它都会响应一个数字?
如何通过 Internet 而不是 LAN 使用套接字?
有没有办法让服务器使用套接字将数据从客户端移动到客户端 - 有点像 IM 程序。
我很可能会在我的 Mac 上为我的朋友托管这个 IM 服务器 - 它可以在操作系统(Mac、PC)之间工作
有什么好的库可以用来做这个吗? (听说 HTTP 很棒)
-
这些代码行真的令人困惑。它们是如何工作的?
print channel.recv ( 100 ) channel.send ( 'Green-eyed monster.' ) -
另外,当我关闭服务器(使用红色 X)并重新使用端口时,它会这样说:
Traceback (most recent call last): File "C:\Users\****\Desktop\Python\Sockets\First Server\server.py", line 3, in <module> mySocket.bind ( ( '', 2003 ) ) File "C:\Python27\lib\socket.py", line 224, in meth return getattr(self._sock,name)(*args) error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted 最后,哪里有一些好的教程可以让我更好地理解这一点?
很抱歉在同一个帖子中问了这么多问题,但是当我发布 this 和 this 时,人们因为我在不同问题中发布类似问题而生气。
Python 版本:Python 2.7.3
【问题讨论】:
标签: python sockets operating-system