我正在尝试使用服务器的示例,但客户端只能发送一条消息,然后服务器将回复一个数字。
这是代码。
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
最后,在哪里有一些好的教程可以让我更好地理解这一点?
很抱歉在同一个帖子中问了这么多问题,但是当我发布这个并且这个人因为我在不同问题中发布类似问题而生我的气。
Python版本:Python 2.7.3