Python3的socket使用方法详解


Posted in Python onFebruary 18, 2020

这篇文章主要介绍了Python3的socket使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

需要实现两台机器的信息交互,使用 socket 进行调度。其中服务端为:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket

# 服务端ip
server_address = ('192.168.229.129',10000)
# 客户端ip
client_address = ("192.168.229.130",10000)
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

s.bind(server_address)
while 1:
  data,addr=s.recvfrom(2048)
  if not data:
    break
  print("got data from",addr)
  print(data.decode())
  replydata = input("reply:")
  s.sendto(replydata.encode("utf-8"),client_address)
s.close()

客户端为:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket

# 服务端ip
server_address = ('192.168.229.129',10000)
# 客户端ip
client_address = ("192.168.229.130",10000)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(client_address)
while 1:
  data = input("input:")
  if not data:
    break
  s.sendto(data.encode("utf-8"), server_address)

  recivedata, addrg = s.recvfrom(2048)
  if recivedata:
    print("from:", addrg)
    print("got recive :", recivedata.decode())
s.close()

启动过后如下所示:

客户端发送:

input:hello world
from: ('192.168.229.129', 10000)
got recive : my name is server
input:my name is client,hahaha
from: ('192.168.229.129', 10000)
got recive : woca

服务端接收:

got data from ('192.168.229.130', 10000)
hello world
reply:my name is server
got data from ('192.168.229.130', 10000)
my name is client,hahaha
reply:woca

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
打印出python 当前全局变量和入口参数的所有属性
Jul 01 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
Python删除windows垃圾文件的方法
Jul 14 Python
基python实现多线程网页爬虫
Sep 06 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
python保存字典和读取字典的实例代码
Jul 07 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
Python批量启动多线程代码实例
Feb 18 #Python
基于pytorch padding=SAME的解决方式
Feb 18 #Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 #Python
Python chardet库识别编码原理解析
Feb 18 #Python
解决pytorch-yolov3 train 报错的问题
Feb 18 #Python
利用PyQt中的QThread类实现多线程
Feb 18 #Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 #Python
You might like
几个学习PHP的网址
2006/11/25 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中global用法实例分析
2015/04/30 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python操作json的方法实例分析
2018/12/06 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
顶碗少年教学反思
2014/02/21 职场文书
优秀教师事迹材料
2014/12/15 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
高中运动会前导词
2015/07/20 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
python的变量和简单数字类型详解
2021/09/15 Python