Python一个简单的通信程序(客户端 服务器)


Posted in Python onMarch 06, 2019

功能是从客户端向服务发送一个字符串, 服务器收到后将字符串重新发送给客户端,同时,在连接建立之后,服务器可以向客户端发送任意多的字符串

客户端:

10.248.27.23是我电脑的IP

import socket, sys
host = '10.248.27.23'
# host = raw_input("Plz imput destination IP:")
# data = raw_input("Plz imput what you want to submit:")
port = 51423
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
  s.connect((host, port))
except socket.gaierror, e:
  print "Address-related error connecting to server: %s" %e
  sys.exit(1)
except socket.error, e:
  print "Connection error: %s" %e
  sys.exit(1)
data = raw_input("Plz imput what you want to submit:")
s.send(data)
s.shutdown(1)
print "Submit Complete"
while 1:
    buf = s.recv(1024)
    sys.stdout.write(buf)

服务器:

import socket, traceback
host = ''
port = 51423
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)
print "done"
while 1:
  #when connect error happen, skip the error
  try:
    ClientSock, ClientAddr = s.accept()
  except KeyboardInterrupt:
    raise
  except:
    traceback.print_exc()
    continue
  #Get informaion form client and reply
  try:
    print "Get connect from ", ClientSock.getpeername()
    data = ClientSock.recv(1024)
    print "The information we get is %s" % str(data)
    ClientSock.sendall("I`ve got the information: ")
    ClientSock.sendall(data)
    while 1:
      str = raw_input("What you want to say:")
      ClientSock.sendall(str)
      ClientSock.sendall('\n')
  except (KeyboardInterrupt ,SystemError):
    raise
  except:
    traceback.print_exc()
  #Clocs socket
  try:
    ClientSock.close()
  except KeyboardInterrupt:
    raise
  except:
    traceback.print_exc()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python批量修改文件后缀的方法
Jan 26 Python
Python最长公共子串算法实例
Mar 07 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
Python获取当前路径实现代码
May 08 Python
Apache如何部署django项目
May 21 Python
Python线性方程组求解运算示例
Jan 17 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python3之手动创建迭代器的实例代码
May 22 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
Django如何创作一个简单的最小程序
May 12 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 #Python
Python二叉树的镜像转换实现方法示例
Mar 06 #Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 #Python
Python中一般处理中文的几种方法
Mar 06 #Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 #Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 #Python
详解django2中关于时间处理策略
Mar 06 #Python
You might like
PHP如何利用P3P实现跨域
2013/08/24 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
python模拟鼠标拖动操作的方法
2015/03/11 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
keras中的History对象用法
2020/06/19 Python
解决python对齐错误的方法
2020/07/16 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
经典c++面试题二
2015/08/14 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
如何安装ruby on rails
2014/02/09 面试题
国际会计专业求职信
2014/08/04 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
护士工作心得体会
2016/01/25 职场文书
MySQL日期时间函数知识汇总
2022/03/17 MySQL
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL