工具:花生殼內(nèi)網(wǎng)穿透
樹莓派
# coding:utf-8
import socket
import time
import sys
def send(content):
SERVER_IP = "" # 阿里云服務(wù)器公網(wǎng)的IP地址
SERVER_PORT = 8888#安全組設(shè)置開放的端口
print("Starting socket: TCP...")
server_addr = (SERVER_IP, SERVER_PORT)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
try:
print("Connecting to server @ %s:%d..." % (SERVER_IP, SERVER_PORT))
socket_tcp.connect(server_addr)
break
except Exception:
print("Can't connect to server,try it latter!")
time.sleep(1)
continue
try:
data = socket_tcp.recv(512)
if len(data) > 0:
print("Received: %s" % data)
command = content
print ("send: %s" % command)
#socket_tcp.send(command.encode("utf_8"))
socket_tcp.send(command)
print("發(fā)送成功")
time.sleep(1)
except Exception:
socket_tcp.close()
socket_tcp = None
sys.exit(1)
def receive():
HOST_IP = "127.0.0.1" # 花生殼映射的內(nèi)網(wǎng)IP和端口
HOST_PORT = 8888
print("Starting socket: TCP...")
# 1.create socket object:socket=socket.socket(family,type)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("TCP server listen @ %s:%d!" % (HOST_IP, HOST_PORT))
host_addr = (HOST_IP, HOST_PORT)
# 2.bind socket to addr:socket.bind(address)
socket_tcp.bind(host_addr)
# 3.listen connection request:socket.listen(backlog)
socket_tcp.listen(1)
# 4.waite for client:connection,address=socket.accept()
socket_con, (client_ip, client_port) = socket_tcp.accept()
print("Connection accepted from %s." % client_ip)
socket_con.send("Welcome to RPi TCP server!".encode())
print("Receiving package...")
try:
data = socket_con.recv(512)
if len(data) > 0:
print("Received:%s" % data)
socket_con.send(data)
time.sleep(1)
except Exception:
socket_tcp.close()
sys.exit(1)
if __name__ == '__main__':
send("我")
receive()
阿里云服務(wù)器
import socket
import sys
import time
import sys
def receive():
HOST_IP = "" #阿里云服務(wù)器私網(wǎng)的IP地址
HOST_PORT = 8888
print("Starting socket: TCP...")
# 1.create socket object:socket=socket.socket(family,type)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("TCP server listen @ %s:%d!" % (HOST_IP, HOST_PORT))
host_addr = (HOST_IP, HOST_PORT)
# 2.bind socket to addr:socket.bind(address)
socket_tcp.bind(host_addr)
# 3.listen connection request:socket.listen(backlog)
socket_tcp.listen(1)
# 4.waite for client:connection,address=socket.accept()
socket_con, (client_ip, client_port) = socket_tcp.accept()
print("Connection accepted from %s." % client_ip)
socket_con.send("Welcome to smart desk server!".encode())
print("Receiving package...")
try:
data = socket_con.recv(512)
a=data
print(a)
if len(data) > 0:
data=data.decode("utf-8")
print("Received:%s" % data)
socket_con.send(a)
time.sleep(1)
except Exception:
socket_tcp.close()
sys.exit(1)
def send(content):
SERVER_IP = "" # 花生殼映射外網(wǎng)ip和端口
SERVER_PORT = 50615#花生殼給定的端口
print("Starting socket: TCP...")
server_addr = (SERVER_IP, SERVER_PORT)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
try:
print("Connecting to server @ %s:%d..." % (SERVER_IP, SERVER_PORT))
socket_tcp.connect(server_addr)
break
except Exception:
print("Can't connect to server,try it latter!")
time.sleep(1)
continue
try:
data = socket_tcp.recv(512)
if len(data) > 0:
print("Received: %s" % data)
command = content
print ("send: %s" % command)
socket_tcp.send(command.encode())
time.sleep(1)
except Exception:
socket_tcp.close()
socket_tcp = None
sys.exit(1)
if __name__ == '__main__':
receive()
send("成功")