套接字:
是可以实现不同主机进程通信的一种方式
套接字使用流程
1、创建一个套接字
2、使用套接字收发数据
3、关闭套接字
python代码演练:
创建udp发送数据套接字
import socket def main(): """ 创建一个套接字 :return: """ # 创建一个套接字 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 绑定端口 udp_socket.bind(("192.168.0.100",6677)) # 使用套接字收发数据 udp_socket.sendto(b"hahaha",("192.168.0.100",7788)) # 关闭套接字 udp_socket.close() if __name__ == '__main__': main()创建udp接收数据套接字
# coding=UTF-8 import socket def main(): """ # 创建一个套接字接收数据 :return: """ # 创建一个套接字 receive_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 绑定端口 发数据套接字可以不绑定端口,接收数据套接字要绑定端口 localaddr = ("",7788) receive_socket.bind(localaddr) # 接收数据 recv_data = receive_socket.recvfrom(1024) print(recv_data) recv_msg = recv_data[0] print(recv_msg.decode("UTF-8")) # 关闭套接字 receive_socket.close() if __name__ == '__main__': main()tcp服务器demo
import socket def main(): # 创建一个套接字 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 绑定IP tcp_server_socket.bind(("127.0.0.1",8080)) # 让默认的套接字由主动变成被动 tcp_server_socket.listen(128) # 等待客户端的连接 返回值是一个元组 # client_socket是为连接的客户端新创的一个套接字 # client_addr是客户端连接的地址,格式为元组,包括IP与port client_socket,client_addr = tcp_server_socket.accept() # 接收客户端发送来的数据 client_msg = client_socket.recv(1024) # 发送数据 client_socket.send("msg".encode("utf-8"),) # 关闭客户端 tcp_server_socket.close() if __name__ == '__main__': main()tcp客户端demo
import socket def main(): # 创建一个套接字 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 链接一个服务器 tcp_socket.connect(("127.0.0.1",8080)) # 接收数据, tcp_socket.recv(1024) # 发送数据 tcp_socket.send("msg") # 关闭套接字 tcp_socket.close() if __name__ == '__main__': main()