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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
详解Python中的正则表达式的用法
Apr 09 Python
Python做文本按行去重的实现方法
Oct 19 Python
如何利用Fabric自动化你的任务
Oct 20 Python
python基础教程之Filter使用方法
Jan 17 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
基于DataFrame改变列类型的方法
Jul 25 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
python基础学习之递归函数知识总结
May 26 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
推荐一篇入门级的Class文章
2007/03/19 PHP
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python多线程编程方式分析示例详解
2013/12/06 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python3 下载网络图片代码实例
2019/08/27 Python
存储过程的优点有哪些
2012/09/27 面试题
安全月宣传标语
2014/10/07 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
2016七夕情人节感言
2015/12/09 职场文书
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server