Python两台电脑实现TCP通信的方法示例
程序员文章站
2023-11-27 12:13:28
为了实现nao机器人与电脑端的tcp通信,于是研究了一下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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。