"""
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():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.sendto(b"hahhaha", ("10.58.34.27", 8888))
udp_socket.close()
if __name__ == '__main__':
main()
"""
重点重点:接收udp数据
"""
import socket
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
localaddr = ("", 7788)
udp_socket.bind(localaddr)
while True:
recv_data = udp_socket.recvfrom(1024)
recv_msg = recv_data[0]
send_addr = recv_data[1]
print("%s:%s" %(str(send_addr), recv_msg.decode('gbk')))
udp_socket.close()
if __name__ == '__main__':
main()
"""
发送数据的流程:
1.创建套接字
2.发送数据
3.关闭
接收数据的流程
1.创建套接字
2.绑定本地自己的ip和port
3.接收数据
4.关闭
-----使用同一个套接字进行收发数据
"""
import socket
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对方的port"))
send_data = input("请输入要发送的数据:")
udp_socket.sendto(send_data.encode('gbk'), (dest_ip, dest_port))
recv_data = udp_socket.recvfrom(1024)
print(recv_data)
udp_socket.close()
if __name__ == '__main__':
main()
|