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分析apache访问日志脚本分享
Feb 26 Python
Python selenium如何设置等待时间
Sep 15 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
对Python实现累加函数的方法详解
Jan 23 Python
python 实现识别图片上的数字
Jul 30 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
python中数字是否为可变类型
Jul 08 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 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高级应用技巧果断收藏
2015/09/25 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
js href的用法
2010/05/13 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
python安装Scrapy图文教程
2017/08/14 Python
TensorFlow实现创建分类器
2018/02/06 Python
python实现学生信息管理系统
2020/04/05 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
委托证明的格式
2014/01/10 职场文书
社区工作者先进事迹
2014/01/18 职场文书
《搭石》教学反思
2014/04/07 职场文书
学校欢迎标语
2014/06/18 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
会计工作岗位职责
2015/02/03 职场文书
对公司的意见和建议
2015/06/04 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
经销商会议开幕词
2016/03/04 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL