python SOCKET编程基础入门

 更新时间:2021年02月27日 10:12:01   作者:心悦君兮君不知-睿  
这篇文章主要介绍了python SOCKET编程基础入门的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下

一、UDP编程

1.客户端Client:发起访问的一方。

2.服务器端

3.server段编程

(1)建立socket,socket是负责具体通信的一个实例

(2)绑定,为创建的socket指派固定的端口和IP地址

(3)接受对方发送内容

(4)给对方发送反馈,此步骤为非必须步骤

4.Client端编程

(1)建立通信的socket

(2)发送内容到指定服务器

(3)接受服务器给定的反馈内容

5.模拟一下这个过程

(1)我们先建立一个服务器的函数

#服务器案例

import socket

​

#模拟服务器的函数

def serverFunc():

  #1.建立socket

  #socket.AF_INET:使用IPV4协议族

  #socket.SOCK_DGRAM:使用UDP通信

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2.绑定ip和port

​

  #127.0.01:这个ip地址代表的是机器本身

  #7852:随机指定的端口号

  #地址是一个tuple类型,(ip.port)

  addr = ("127.0.0.1",7852)

  sock.bind(addr)

​

  #接受对方消息

  #等待方式为死等,没有其他可能性

  #recvfrom接受的返回值是一个元组,前一项表示数据,后一项表示地址

  #参数的含义是缓冲区大小

  #rst = sock.recvfrom(500)

  data,addr = sock.recvfrom(500)

​

  print(data)

  print(type(data))

​

  #发送过来的数据是bytes格式,必须通过解码才能得到str格式内容

  #decode默认参数是utf8

  text = data.decode()

  print(type(text))

  print(text)

​

  #给对方反馈的消息

  rsp = "I am very hungry now"

​

  #发送的数据需要编程成bytes格式

  #默认时utf8

  data = rsp.encode()

  sock.sendto(data,addr)

  

if __name__ == "__main__":

  print("Start Server")

  serverFunc()

print("End Server")

(2)然后创建一个客户端的函数

import socket

def clientFunc():

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  text = "you are very cool"

​

  #发送的数据必须是bytes格式

  data = text.encode()

  #发送

  sock.sendto(data,("127.0.0.1",7852))

  data,addr =sock.recvfrom(200)

​

  data = data.decode()

  print(text)

​

if __name__ == "__main__":

  print("Start Client")

  clientFunc()

print("End Client")

(3)我们先启动服务器端函数

出现如下图像,它是创建了一个sock,然后自己绑定到127.0.0.1:7852,运行到sock.recvfrom(500)这里死等客户端发消息

(4)再启动客户端函数

出现如下发送编码后的​text内容到服务器(127.0.0.1:7852),服务器成功接收后返回you are cool这句话。

(5)我们再看服务器的函数那里

接受了bytes格式的字符串,并打印出来了,然后再解码打印出来,最后把you are cool返回​客户端。

(6)这里有个地方没有办法:因为我们在一台电脑上做的测试,所以相当于自言自语,​不如在两台电脑上进行试验。​

二、源码

D33_1_ServerProgramme.py

D33_2_ClientProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

以上就是python SOCKET编程基础入门的详细内容,更多关于python SOCKET编程的资料请关注脚本之家其它相关文章!

相关文章

  • pytorch 实现多个Dataloader同时训练

    pytorch 实现多个Dataloader同时训练

    这篇文章主要介绍了pytorch 实现多个Dataloader同时训练的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • wxpython绘制圆角窗体

    wxpython绘制圆角窗体

    这篇文章主要为大家详细介绍了wxpython绘制圆角窗体,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 使用Python脚本操作MongoDB的教程

    使用Python脚本操作MongoDB的教程

    这篇文章主要介绍了使用Python脚本操作MongoDB的教程,MongoDB作为非关系型数据库得到了很大的宣传力度,而市面上的教程一般都是讲解JavaScript的脚本操作,本文则是基于Python,需要的朋友可以参考下
    2015-04-04
  • Python使用PyAudio制作录音工具的实现代码

    Python使用PyAudio制作录音工具的实现代码

    这篇文章主要介绍了Python使用PyAudio制作录音工具,音频录制与视频录制相似,也是以数据帧的方式录制保存,这次使用强大的第三方包PyAudio和内置的wave模块编写,需要的朋友可以参考下
    2022-04-04
  • python list删除元素时要注意的坑点分享

    python list删除元素时要注意的坑点分享

    下面小编就为大家分享一篇python list删除元素时要注意的坑点分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python2.7环境Flask框架安装简明教程【已测试】

    Python2.7环境Flask框架安装简明教程【已测试】

    这篇文章主要介绍了Python2.7环境Flask框架安装方法,结合实例形式详细分析了Python2.7环境下安装Flask框架遇到的问题与相关解决方法、注意事项,并给出了一个基本的测试示例,需要的朋友可以参考下
    2018-07-07
  • 关于python列表相关知识点

    关于python列表相关知识点

    这篇文章主要介绍了关于python列表相关知识点,变量可以存储一个元素,而列表是一个大容器,可以存储N多个元素,程序可以方便的对这些数据进行整体操作,需要的朋友可以参考下
    2023-04-04
  • python矩阵的转置和逆转实例

    python矩阵的转置和逆转实例

    今天小编就为大家分享一篇python矩阵的转置和逆转实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 使用Python自制数据库备份工具实现数据定时覆盖

    使用Python自制数据库备份工具实现数据定时覆盖

    这篇文章主要为大家详细介绍了如何使用Python自制数据库备份工具实现数据定时覆盖功能,文中的示例代码讲解详细,需要的小伙伴可以参考下
    2024-03-03
  • OpenCV自动给图片添加彩虹特效的实现示例

    OpenCV自动给图片添加彩虹特效的实现示例

    图像处理的学习往往都是要先熟悉下图像的一些基本处理方法,本文主要介绍了OpenCV自动给图片添加彩虹特效的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论