时间:2021-05-22
为了实现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()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python实现简单socket程序在两台电脑之间传输消息的方法。分享给大家供大家参考。具体分析如下:python开发简单socket程序在两台电
无需外部硬件设备,用软件的方法就可以实现一套鼠标键盘控制两台或多台电脑。(前提是两台电脑在同一个局域网中)。下面以两台电脑为例。1、首先要知道两台电脑的ip地址
交换机连接两台电脑同时上网 当家里拥有两台电脑的时候,可不可以开通一条网线,让两台一起上网呢?当然办法是肯定有的,下面就是详细讲解如何通过交换机让两台电脑
自己的电脑与别人的电脑共享必须要两台电脑在同一个局域网内,并且两台电脑能相互PING通。 为了防止意外错误,记得把两台电脑的防火墙都关闭。 局域网共享设
Java中的TCP通信程序TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端两端通信时的步骤:1.服务端程序,需要事先启动,等待客户端连