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兔子毒药问题实例分析
Mar 05 Python
详解Python中dict与set的使用
Aug 10 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
Python工厂函数用法实例分析
May 14 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
Python实现的各种常见分布算法示例
Dec 13 Python
Python元组知识点总结
Feb 18 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
学python安装的软件总结
Oct 12 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python实现三壶谜题的示例详解
Nov 02 Python
Python - 10行代码集2000张美女图
May 23 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伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
限制文本字节数js代码
2007/03/06 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
详解python进行mp3格式判断
2016/12/23 Python
深入浅析Python中的yield关键字
2018/01/24 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书