【问题标题】:A simple socket server and client program using python一个简单的使用python的socket服务器和客户端程序
【发布时间】:2017-12-09 13:30:33
【问题描述】:

SocketServer程序
这段代码在树莓派中:

import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
"""
The request handler class for our server.

It is instantiated once per connection to the server, and must
override the handle() method to implement communication to the
client.
"""

def handle(self):
    # self.request is the TCP socket connected to the client
    self.data = self.request.recv(1024).strip()
    print "{} wrote:".format(self.client_address[0])
    print self.data
    # just send back the same data, but upper-cased
    self.request.sendall(self.data)

if __name__ == "__main__":
HOST, PORT = "localhost", 9999

# Create the server, binding to localhost on port 9999
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)

# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
server.serve_forever()

Socket 客户端程序
这段代码在我的笔记本电脑里:

import socket
import sys

HOST, PORT = "192.168.1.40", 3360
data='Hello'
#data = data.join(sys.argv[1:])
# Create a socket (SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
    # Connect to server and send data
    sock.connect((HOST, PORT))
    sock.sendall(data + "\n")

    # Receive data from the server and shut down
    received = sock.recv(1024)
finally:
    sock.close()
print "Sent:     {}".format(data)
print "Received: {}".format(received)

这里发送的数据应该被接收到服务器并发送回客户端。

这是错误:

[Errno 10061] 由于目标机器主动拒绝,无法建立连接。

【问题讨论】:

    标签: python python-2.7 sockets client-server


    【解决方案1】:

    尝试在服务器中更改为HOST, PORT = "0.0.0.0", 9999。现在服务器应该监听所有接口,而不仅仅是环回接口。同样也可以使用空字符串来实现,即HOST, PORT = "", 9999

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多