首页 > 代码库 > 网络协议UDP

网络协议UDP

------------------------------互联网协议与协议族------------------------------
tcp/ip协议介绍:计算机网络协议,不同类型不同厂家之间的终端进行沟通,规范协议

互联网协议族:为tcp/ip协议族 大概有上百种协议,其中tcp协议、ip协议使用的比较
多所以大家默认成为tcp/ip


IP地址:网络地址(ip地址与子网掩码进行与运算获得)和主机地址
A类IP地址:由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”
(地址范围1.0.0.1-126.255.255.254)
B类IP地址:由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是
“10”(128.1.0.1-191.255.255.254)
C类IP地址:由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须
是“110”(范围192.0.1.1-223.255.255.254)

 

------------------------------socket介绍------------------------------
#定义:socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主
要不同是:

#import socket:应用socket包
#socket.socket(Address Family,Type):创建一个套接字,返回socket的描述符
Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者
AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
Type:套接字类型,可以是 SOCKET_STREAM(流式套接字,主要用于 TCP 协议
)或者 SOCKET_DGRAM(数据报套接字,主要用于 UDP 协议)

 

------------------------------udp协议------------------------------
upd协议:快速传播数据,但不太安全。19世界70年代

#udpSocket = socket(AF_INET, SOCK_DGRAM):创建套接字

#sendData = http://www.mamicode.com/raw_input("请输入要发送的数据:"):从键盘获取数据

#sendAddr = (‘192.168.1.103‘, 8080):准备接收方的地址

#bindAddr = (‘‘, 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
#udpSocket.bind(bindAddr)# 绑定本地的相关信息,如果一个网络程序不绑定,则系统
会随机分配

#udpSocket.sendto(sendData, sendAddr):发送数据到指定的电脑上

#recvData=http://www.mamicode.com/udpSocket.recvfrom(1024):接收数据,1024表示本次接收的最大字节数

#udpSocket.close():关闭套接字

 

------------------------------编写案例------------------------------

 1 #coding=utf-8 2  3 #引用对应的包 4 import socket 5  6 import threading 7  8 import sys 9 10 #全局变量socket11 global_soc=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)12 13 #线程:信息接受14 class MyThreadJieShou(threading.Thread):15     #重写构造函数16     def __init__(self,port):17         threading.Thread.__init__(self)18         #进程端口19         self.port=int(port)20     21     #重写run方法22     def run(self):23         #socket全局变量24         global global_soc25         26         #创建ip和端口号27         self.locker=("",self.port)28         29         global_soc.bind(self.locker)30         31         while True:32             self.result=global_soc.recvfrom(1024)33             print ("\n")34             print (self.result)35         36         global_soc.close()37 38 #线程:信息发送39 class MyThreadFaSong(threading.Thread):40     #重写run方法41     def run(self):42         #全局变量socket43         global global_soc44 45         #创建发送的目标端口号46         addr=("192.168.13.33",8080)47         48         while True:49             strCount=raw_input("请输入:")50             51             #信息的发送52             global_soc.sendto(strCount,addr)53 54         global_soc.close()55         56 57 if __name__=="__main__":58     #创建对应的线程59     jieShou=MyThreadJieShou(sys.argv[1])60     faSong=MyThreadFaSong()61 62     #进程开启63     jieShou.start()64     faSong.start()

 

网络协议UDP