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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
简单的编程0基础下Python入门指引
Apr 01 Python
Python 内置函数complex详解
Oct 23 Python
python如何使用unittest测试接口
Apr 04 Python
python并发和异步编程实例
Nov 15 Python
pip安装python库的方法总结
Aug 02 Python
django 控制页面跳转的例子
Aug 06 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
Python count函数使用方法实例解析
Mar 23 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
python 爬取小说并下载的示例
Dec 07 Python
PyQt5爬取12306车票信息程序的实现
May 14 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字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
用jscript实现新建word文档
2007/06/15 Javascript
JavaScript中的History历史对象
2008/01/16 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python使用RNN实现文本分类
2018/05/24 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python读写csv文件的方法
2019/08/13 Python
Python爬虫开发与项目实战
2020/12/16 Python
DataList 能否分页,请问如何实现?
2015/05/03 面试题
见习期自我鉴定
2014/01/31 职场文书
20年同学聚会感言
2014/02/03 职场文书
征兵宣传标语
2014/06/20 职场文书
美化环境标语
2014/06/20 职场文书
2014年国庆标语
2014/06/30 职场文书
招标承诺书
2014/08/30 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
推普标语口号大全
2015/12/26 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
把77A收信机改造成收音机
2022/04/05 无线电