代码之家  ›  专栏  ›  技术社区  ›  GreenHawk1220

如何使用python无线连接到计算机

  •  1
  • GreenHawk1220  · 技术社区  · 9 年前

    我想知道是否有任何方法可以使用python的套接字库无线连接到计算机/服务器。dir(socket)带来了很多东西,我需要帮助整理。

    2 回复  |  直到 9 年前
        1
  •  1
  •   KromviellBlack    9 年前

    但有一个问题。套接字服务器是否特定于python,或者可以 另一种语言主机和python连接,或者反之亦然?

    只要你在使用 sockets -您可以连接到任何基于套接字的服务器(使用任何语言制作)。反之亦然:任何基于套接字的客户端都可以连接到服务器。此外,它是跨平台的:任何操作系统的基于套接字的客户端都可以连接到任何基于套接字的服务器(来自任何操作系统)。

        2
  •  0
  •   Qwerty DJ1411    9 年前

    不清楚“连接到计算机”是什么意思,所以我给了您一个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