就業DAY2_網絡編程_tcp客戶端及服務器

 

 

 

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()
相關文章
相關標籤/搜索