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使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
Python字符串处理实例详解
May 18 Python
Python打印输出数组中全部元素
Mar 13 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
python os.rename实例用法详解
Dec 06 Python
python 实现定时任务的四种方式
Apr 01 Python
pytorch中的numel函数用法说明
May 13 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与javascript对多项选择的处理
2006/10/09 PHP
php 生成WML页面方法详解
2009/08/09 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python简单实现enum功能的方法
2016/04/25 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
什么是属性访问器
2015/10/26 面试题
优秀志愿者事迹材料
2014/02/03 职场文书
优秀应届生求职信
2014/06/16 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
保管员岗位职责
2015/02/14 职场文书
关爱空巢老人感想
2015/08/11 职场文书