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中random模块生成随机数详解
Mar 10 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
python中while和for的区别总结
Jun 28 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python Django搭建网站流程图解
Jun 13 Python
Python如何批量生成和调用变量
Nov 21 Python
如何用python写个模板引擎
Jan 14 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&&mysql)五
2006/10/09 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
javascript中常用编程知识
2013/04/08 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python单元测试unittest实例详解
2015/05/11 Python
Python Requests安装与简单运用
2016/04/07 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python argparser的具体使用
2019/11/10 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python 如何展开嵌套的序列
2020/08/01 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
学习十八大精神心得体会
2013/12/31 职场文书
大学生村官承诺书
2014/03/28 职场文书
社会公德演讲稿
2014/05/20 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
美化环境标语
2014/06/20 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python