网络编程
位置:首页>> 网络编程>> Python编程>> Python两台电脑实现TCP通信的方法示例

Python两台电脑实现TCP通信的方法示例

作者:AD稳稳  发布时间:2023-09-07 04:17:34 

标签:Python,TCP,通信

为了实现Nao机器人与电脑端的TCP通信,于是研究了一下Python实现TCP通信,在网上也看到了很多例子,但大多都是在一台机器上验证。在两台机器上使用,出了一些小故障。

注意:若两台电脑通信出了问题,若能ping通!大部分是防火墙的问题。一开始A做服务器,B做客户端能实现;B做服务器,A做客户端,A就不能连接到B。我换了一台电脑A就能实现通信了。应该是A的防火墙需要设置。但是A的防火墙全关了也不能实现。真是很让人搞不懂。

首先是服务器端代码:


# -*- encoding: utf-8 -*-
import socket

IP = "192.168.1.153" #服务器端可以写"localhost",可以为空字符串"",可以为本机IP地址
port = 40005 #端口号
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((IP,port))
s.listen(1)
print('listen at port :',port)
conn,addr = s.accept()
print('connected by',addr)

while True:
 data = conn.recv(1024)
 data = data.decode()#解码
 if not data:
   break
 print('recieved message:',data)
 send = raw_input('return:')#python27要写raw_input,python3.X可写input
 conn.sendall(send.encode())#再编码发送

conn.close()
s.close()

客户端代码:


# -*- encoding: utf-8 -*-
import socket
import sys
IP = '192.168.1.153' #填写服务器端的IP地址
port = 40005 #端口号必须一致
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
 s.connect((IP,port))
except Exception as e:
 print('server not find or not open')
 sys.exit()
while True:
 trigger = raw_input("send:")
 s.sendall(trigger.encode())
 data = s.recv(1024)
 data = data.decode()
 print('recieved:',data)
 if trigger.lower() == '1':#发送1结束连接
   break
s.close()

来源:https://blog.csdn.net/ADwenwen/article/details/79031085

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com