我想知道是否有任何方法可以使用python的套接字库无线连接到计算机/服务器。 dir(socket)带来了很多东西,我想帮助整理它。
答案 0 :(得分:1)
但有一个问题。套接字服务器是否特定于python,或者可以 另一种语言主机和python连接或反之亦然?
只要您使用sockets
- 您就可以连接到任何基于套接字的服务器(使用任何语言制作)。反之亦然:任何基于套接字的客户端都可以连接到您的服务器。此外,它的跨平台:来自任何操作系统的基于套接字的客户端都可以连接到任何基于套接字的服务器(来自任何操作系统)。
答案 1 :(得分:0)
目前还不清楚“连接到计算机”是什么意思,所以我给了你一个TCP套接字服务器和客户端。 在您希望“连接到”的计算机上创建一个套接字服务器:
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024).strip()
print "{} wrote:".format(self.client_address[0])
print self.data
self.request.sendall(self.data.upper())
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
# Create the server, binding to localhost on port 9999
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
现在创建客户端:
import socket
import sys
HOST, PORT = "localhost", 9999
data = " ".join(sys.argv[1:])
(SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((HOST, PORT))
sock.sendall(data + "\n")
received = sock.recv(1024)
finally:
sock.close()
print "Sent: {}".format(data)
print "Received: {}".format(received)
您运行服务器,然后客户端和服务器应该接收客户端的连接并将其作为数据变量发送到服务器上。资料来源:https://docs.python.org/2/library/socketserver.html