python socket基本语法
udp发送
import socket def main(): # 创建一个udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) while True: # 从键盘获取数据 send_data = input("请输入要发送的数据:") # 如果输入的数据是exit,那么就退出程序 if send_data == "exit": break # 可以使用套接字收发数据 # udp_socket.sendto("hahahah", 对方的ip以及port) # udp_socket.sendto(b"hahahah------1----", ("192.168.33.53", 8080)) udp_socket.sendto(send_data.encode("utf-8"), ("192.168.33.53", 8080)) # 关闭套接字 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) udp_socket.bind(localaddr) # 必须绑定自己电脑的ip以及port,其他的不行 # 3. 接收数据 while True: recv_data = udp_socket.recvfrom(1024) # recv_data这个变量中存储的是一个元组(接收到的数据,(发送方的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("utf-8"))) print("%s:%s" % (str(send_addr), recv_msg.decode("gbk"))) # 5. 关闭套接字 udp_socket.close() if __name__ == "__main__": main()
tcp客户端
import socket def main(): # 1. 创建tcp的套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 链接服务器 # tcp_socket.connect(("192.168.33.11", 7890)) server_ip = input("请输入要链接的服务器的ip:") server_port = int(input("请输入要链接的服务器的port:")) server_addr = (server_ip, server_port) tcp_socket.connect(server_addr) # 3. 发送数据/接收数据 send_data = input("请输入要发送的数据:") tcp_socket.send(send_data.encode("utf-8")) # 4. 关闭套接字 tcp_socket.close() if __name__ == "__main__": main()
tcp服务器
import socket def main(): # 1. 买个手机(创建套接字 socket) tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 插入手机卡(绑定本地信息 bind) tcp_server_socket.bind(("", 7890)) # 3. 将手机设置为正常的 响铃模式(让默认的套接字由主动变为被动 listen) tcp_server_socket.listen(128) print("-----1----") # 4. 等待别人的电话到来(等待客户端的链接 accept) new_client_socket, client_addr = tcp_server_socket.accept() print("-----2----") print(client_addr) # 接收客户端发送过来的请求 recv_data = new_client_socket.recv(1024) print(recv_data) # 回送一部分数据给客户端 new_client_socket.send("hahahghai-----ok-----".encode("utf-8")) # 关闭套接字 new_client_socket.close() tcp_server_socket.close() if __name__ == "__main__": main()