本文记录了远程TCP通讯试验过程.
所需硬件:1路由器? 2? WIN10电脑? 3树莓派3b
??????? 软件:1 sscom5.12.1?
首先设置路由器端口转发设置:
?通过路由器获取公网IP
?
树莓派上的PYTHON程序
# encoding:utf-8
from socket import *
def main():
# 1.创建tcp_client_socket 套接字对象
tcp_client_socket = socket(AF_INET,SOCK_STREAM)
# 作为客户端,主动连接服务器较多,一般不需要绑定端口
# 2.连接服务器
tcp_client_socket.connect(("180.116.239.50",12415))
while True:
"""无限循环可以实现无限聊天"""
# 3.向服务器发送数据
meg = input("请输入要发送的消息:")
tcp_client_socket.send(meg.encode())
# 在udp协议中使用的sendto() 因为udp发送的为数据报,包括ip port和数据,
# 所以sendto()中需要传入address,而tcp为面向连接,再发送消息之前就已经连接上了目标主机
# 4.接收服务器返回的消息
recv_data = tcp_client_socket.recv(1024) # 此处与udp不同,客户端已经知道消息来自哪台服务器,不需要用recvfrom了
if recv_data:
print("返回的消息为:",recv_data.decode('gbk'))
else:
print("对方已离线。。")
break
tcp_client_socket.close()
if __name__ == '__main__':
main()
运行程序,客户端与服务器端互发消息
?
|