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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
Python类的用法实例浅析
May 27 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python爬虫基本知识
Mar 05 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
Python异常类型以及处理方法汇总
Jun 05 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&java(三)
2006/10/09 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
php中__toString()方法用法示例
2016/12/07 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
Python 3中的yield from语法详解
2017/01/18 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
中国最大的团购网站:聚划算
2016/09/21 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
上课玩手机检讨书
2014/02/08 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
公司授权委托书
2014/10/17 职场文书
电力工程合作意向书
2015/05/11 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
毕业典礼致辞
2015/07/29 职场文书
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS