您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python SOCKET编程基础入门

51自学网 2021-10-30 22:54:01
  python
这篇教程python SOCKET编程基础入门写得很实用,希望能帮到您。

一、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 socketdef 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编程的资料请关注51zixue.net其它相关文章!


python 对xml解析的示例
python FTP编程基础入门
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。