"""
1.创建套接字
2.使用套接字收/发数据
3.关闭套接字
使用socket模块的函数socket完成
import socket
socket.socket(AddressFamily, Type)
AddressFamily:可以选择AF_INET(用户Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
Type:套接字类型,可以是SOCK_STREAM(流式套接字,主要用于TCP协议)或者SOCK_DGRAM(数据报套接字,主要用户UDP协议)
"""
import socket
def main():
#1.创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#2.使用套接字收发数据
udp_socket.sendto(b"hahhaha", ("10.58.34.27", 8888))
#3.关闭套接字
udp_socket.close()
if __name__ == '__main__':
main()
"""
重点重点:接收udp数据
"""
import socket
def main():
#1.创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#2.绑定一个本地信息
localaddr = ("", 7788) #必须绑定自己电脑的ip和port,其他的不行
udp_socket.bind(localaddr)
while True:
#3.接收数据
recv_data = udp_socket.recvfrom(1024) #这个变量中存储的是一个元组(接收到的数据, (发送方的ip,port))
recv_msg = recv_data[0] #存储接收的数据
send_addr = recv_data[1] #存储发送方的地址短信
#4.打印接收到的数据
#print(recv_data)
print("%s:%s" %(str(send_addr), recv_msg.decode('gbk')))
#5.关闭套接字
udp_socket.close()
if __name__ == '__main__':
main()
"""
发送数据的流程:
1.创建套接字
2.发送数据
3.关闭
接收数据的流程
1.创建套接字
2.绑定本地自己的ip和port
3.接收数据
4.关闭
-----使用同一个套接字进行收发数据
"""
import socket
def main():
#1.创建一个udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#2.获取对方的ip/port
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对方的port"))
#3.从键盘获取数据
send_data = input("请输入要发送的数据:")
#4.可以使用套接字收发数据
udp_socket.sendto(send_data.encode('gbk'), (dest_ip, dest_port))
#5.接收回送过来的数据
recv_data = udp_socket.recvfrom(1024)
print(recv_data)
#6.关闭套接字
udp_socket.close()
if __name__ == '__main__':
main()