socket(简称 套接字 ) ,是⽀持TCP/IP的⽹络通信的基本操作单元
创建一个udp通信
import socket
udp_socket=socket.socketsocket.AF_INET,socket.SOCK_DGRAM)
udp_socke_send=socket.sendto('hello',('192.168.150.96',8080)) #发送内容,发送到的ip地址和端口
udp_socket_recv=socket.recvfrom(1024)
udp_socket.close()
创建一个TCP通信
1.服务端
import socket
tcp_server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True) # 设置地址重用
tcp_server_socket.bind(('192.168.150.92',8080)) # 绑定端口
tcp_server_socket.listen(128) # 设置监听
new_client_socket,ip_port=tcp_server_socket.accept # 等待客户端的连接,并创捷和接收新的套接字,accept返回的是一个元组(套接字,ip地址和端口号),所以拆包获得,当执行到这行代码的时候,会暂停等待,直到有客户端连接则向下继续执行。
request_recy=new_client_socket.recv(1024) .decode() # 执行到这一步的时候会暂停等待数据接收,接收到数据后继续向下执行。
new_client_socket.send('hello'.encode()) # 因为tcp是先建立连接再发送内容,所以这里只有内容
new_client_socket.close() #关闭套接字
2 . 客户端
import socket
tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_client_socket.connect(('192.168.150.92',8080))
tcp_client_socker.send(name.encode())
request_recv=tcp_client_socket.recv.decode()
print('接收到内容:',request_recv)
tcp_client_socket.close()