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


Posted in Python onMay 06, 2019

为了实现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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
python 平衡二叉树实现代码示例
Jul 07 Python
对python文件读写的缓冲行为详解
Feb 13 Python
python绘制直方图和密度图的实例
Jul 08 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python的几种主动结束程序方式
Nov 22 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
python3利用Socket实现通信的方法示例
May 06 #Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 #Python
Python Flask 搭建微信小程序后台详解
May 06 #Python
Python玩转PDF的各种骚操作
May 06 #Python
使用Python和Prometheus跟踪天气的使用方法
May 06 #Python
Python中常用的8种字符串操作方法
May 06 #Python
基于python if 判断选择结构的实例详解
May 06 #Python
You might like
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php实现快速排序法函数代码
2012/08/27 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
input 高级限制级用法
2009/03/26 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python重试装饰器示例
2014/02/11 Python
如何更优雅地写python代码
2019/07/02 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
人力资源经理自我评价
2014/01/04 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
体育馆的标语
2014/06/24 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2014年技术员工作总结
2014/11/18 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL