from socket import * import socket def main(): # 建立tcp套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 連接服務器 # tcp_socket.connect(("10.6.25.79", 8080)) server_ip = input("請輸入須要連接服務器的IP:") server_port = int(input("請輸入須要連接服務器的port:")) server_addr = (server_ip, server_port) tcp_socket.connect(server_addr) # 發送數據 send_data = input("請輸入發送的數據:") tcp_socket.send(send_data.encode("gbk")) # 關閉套接字 tcp_socket.close() if __name__ == "__main__": main()
from socket import * import socket def main(): # 買個手機-建立tcp套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 插入手機卡-綁定 tcp_socket.bind(("", 7890)) # 將手機設置爲正常的響鈴模式(讓默認的套接字由主動變爲被動listen) tcp_socket.listen(128) print("-----1-----") # 等待別人的電話到來(等待客戶端的連接 accept) client_socket, client_addr = tcp_socket.accept() print("-----2-----") # print(client_socket) print(client_addr) # 接收客戶端發送來的請求 recv_data = client_socket.recv(1024) print(recv_data.decode("gbk")) # 回送一部分數據給客戶端 client_socket.send("哈哈".encode("gbk")) # 關閉套接字 tcp_socket.close() client_socket.close() if __name__ == "__main__": main()
from socket import * import socket def main(): # 買個手機-建立tcp套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 插入手機卡-綁定 tcp_socket.bind(("", 7890)) # 將手機設置爲正常的響鈴模式(讓默認的套接字由主動變爲被動listen) tcp_socket.listen(128) while True: print("等待一個新的客戶端到來") # 等待別人的電話到來(等待客戶端的連接 accept) client_socket, client_addr = tcp_socket.accept() # print(client_socket) print("一個新客戶端來了%s" % str(client_addr)) # 接收客戶端發送來的請求 recv_data = client_socket.recv(1024) print("客戶端發過來的請求是:%s" % recv_data.decode("gbk")) # 回送一部分數據給客戶端 client_socket.send("哈哈".encode("gbk")) # 關閉套接字 # 關閉accept返回的套接字,意味着不會再爲這個客戶端服務 client_socket.close() print("已經服務完畢") # 若是將監聽套接字關閉,那邊會致使不能再次等待新客戶端的到來,即XXX.accept就會失敗 tcp_socket.close() if __name__ == "__main__": main()
from socket import * import socket def main(): # 買個手機-建立tcp套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 插入手機卡-綁定 tcp_socket.bind(("", 7890)) # 將手機設置爲正常的響鈴模式(讓默認的套接字由主動變爲被動listen) tcp_socket.listen(128) while True: # 循環爲多個客戶端服務 print("等待一個新的客戶端到來") # 等待別人的電話到來(等待客戶端的連接 accept) client_socket, client_addr = tcp_socket.accept() # print(client_socket) print("一個新客戶端來了%s" % str(client_addr)) while True: # 循環屢次爲同一個客戶端服務 # 接收客戶端發送來的請求 recv_data = client_socket.recv(1024) print("客戶端發過來的請求是:%s" % recv_data.decode("gbk")) # 若是recv解堵塞,兩個方式 # 1 客戶端發送過來數據 # 2 客戶端調用close致使了recev解堵塞 if recv_data: # 回送一部分數據給客戶端 client_socket.send("哈哈".encode("gbk")) else: break # 關閉套接字 # 關閉accept返回的套接字,意味着不會再爲這個客戶端服務 client_socket.close() print("已經服務完畢") # 若是將監聽套接字關閉,那邊會致使不能再次等待新客戶端的到來,即XXX.accept就會失敗 tcp_socket.close() if __name__ == "__main__": main()