Python两台电脑实现TCP通信的方法示例
Python  /  管理员 发布于 7年前   431
为了实现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 socketimport sysIP = '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结束连接 breaks.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号