<p>我认为您的问题是IP地址:<code>10.0.2.2</code>,如这里所述[<a href="https://stackoverflow.com/questions/35441481/connection-to-localhost-10-0-2-2-from-android-emulator-timed-out]">Connection to LocalHost/10.0.2.2 from Android Emulator timed out</a>。
您可以将<code>'10.0.2.2'</code>替换为<code>'localhost'</code>,或者尝试查找您的<code>IPv4</code>地址。在</p>
<p>为此,如果使用Linux,请在命令提示符下键入ifconfig,或者在windows中键入ipconfig并搜索<code>IPv4</code>地址。在</p>
<p>我使用了一个简单的客户机-服务器示例来运行代码,并将<code>'10.0.2.2'</code>替换为<code>'localhost'</code>,一切正常。在</p>
<p>服务器端:</p>
<pre><code>import socket
import struct
import time
TCP_IP = 'localhost'
TCP_PORT = 502
BUFFER_SIZE = 39
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
sock, addr = s.accept()
print 'Connected by', addr
try:
unitId = 16 # Plug Socket11
functionCode = 3 # Write coil
print("\nSwitching Plug ON...")
coilId = 1
req = struct.pack('12B', 0x00, 0x01, 0x00, 0x00, 0x00, 0x06,
int(unitId), 0x03, 0xff, 0xc0, 0x00,
0x00)
while 1:
sock.send(req)
print("TX: (%s)" % repr(req))
rec = sock.recv(BUFFER_SIZE)
print("RX: (%s)" % repr(rec))
time.sleep(2)
break
print("\nSwitching Plug OFF...")
coilId = 2
req = struct.pack('12B', 0x00, 0x01, 0x00, 0x00, 0x00, 0x06,
int(unitId),
0x03, 0xff, 0xc0, 0x00,
0x00)
while 1:
sock.send(req)
print("TX: (%s)" % repr(req))
rec = sock.recv(BUFFER_SIZE)
print("RX: (%s)" % repr(rec))
time.sleep(2)
break
finally:
sock.close()
</code></pre>
<p>客户端:</p>
^{pr2}$
<p>确保在不同的文件/终端中运行服务器和客户端</p>