前面在学习多进程 之间通信用到 QUEQUE, 那也只是在同一台电脑,进行通信,
那如何在不同的电脑传输数据呢, 就用到了网络传输,以后的章节我都写网络编程的知识。
首先我们要了解 IP 和 端口 两个概念,
当我们把一个消息发送到电脑 qq 里, 为什么他能找到你的电脑呢, 就是用 IP 协议 , 为什么找到你的电脑也能找你的qq呢,为什么不发到微信里, 说明用到了端口号。 端口是分辨电脑里进程的编号。
UDP 和 TCP 的区别是什么呢?
主要的区别是 :
UDP 是非面向连接, 优点是快, 但是不稳定。
TCP 是面向连接,优点是慢,但是稳定, 具体自己查下,不是本节的重点。
在介绍这个知识 我们要下载个网络助手,百度下载安装就行, 如图:
模拟UDP 发送
- 设置网络助手
设置内容 有, 协议类型 选择UDP, ip 和端口,然后点击连接。
2. 编辑代码 然后发送
from socket import *
udpsocket=socket(AF_INET,SOCK_DGRAM) # 这个是固定的写法 ,返回一个socket 对象
senddata=b"hello , i love you " # 这个保存你要发的内容
sendaddr=('192.168.43.224',8080) # 保存发送地址, 是个元祖 第一个是IP、寻找哪台电脑, 第二个是端口代表发给哪个程序
udpsocket.sendto(senddata,sendaddr) # 调用sendto 方法 ,发送你想要的内容
在网络助手 显示就是要发送的内容,如图:
模拟 TCP 发送
- 设置 TCP服务端
from socket import *
addr = ('192.168.43.224',8080)
sendData = ("i am tcp ")
Socket_TCP = socket() # socket 对象
Socket_TCP.connect(addr) # 连接 tcp 服务器
data = sendData
data = bytes(data, encoding='utf-8') # 因为input返回的是字符串类型的数据,data需要字节类型的数据
Socket_TCP.sendall(data) # 发送数据
执行的结果为:
总结:
我写的只是了解 socket 基本概念, 并熟悉的基本流程, 后边我具体介绍 socket 包含的方法, 并写一个基本的聊天系统。