TCP客戶端服務器(Python)

TCP客戶端程序:

import socket


def main():
    #  創建tcp
    tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    #  鏈接套接字
    # sever_ip=input("輸入對方ip:")
    # sever_port=int(input("輸入對方端口:"))
    # sever_addr=(sever_ip,sever_port)
    tcp_client_socket.connect(sever_addr)
    while True:
        #  數據發送
        tcp_data=input("輸入發送的內容:")
        tcp_client_socket.send(tcp_data.encode("utf-8"))

        #  服務器返回數據
        rev_data=tcp_client_socket.recv(1024)
        print("服務器返回的消息:",rev_data)
    #  關閉套接字
    tcp_client_socket.close()
if __name__ == '__main__':
    main()

TCP服務器程序:

當TCP客戶端實現與服務器連接時,服務器給客戶端創建一個新的服務套接字,類似10010客服,當你打通10010服務時,系統會隨機給你分配一個客服與你交流。

import socket


def main():
    #  創建套接字
    tcp_sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    #  綁定本地信息
    tcp_sever_socket.bind(('',7890))

    #  讓默認是套接字主動變爲被動(listen)三次握手在這裏完成
    tcp_sever_socket.listen(128)

    while True:
        #  等待客戶端的鏈接
        print("等待新的客戶端到來")
        new_client_socket,client_addr=tcp_sever_socket.accept()  #  服務套接字
        print("客戶端已經到來:%s"%str(client_addr))

        while True:
            #  接受客戶端發過來的請求
            recv_data=new_client_socket.recv(1024)
            print("客戶端發來的請求:%s"%recv_data)
            #  如果recv解阻塞,有兩種方式
            #  1.客戶端發來數據
            #  2.客戶端close導致了recv解阻塞
            if recv_data:
                #回送一部分數據給客戶端
                new_client_socket.send('hahhah'.encode("utf-8"))
            else:
                break
        #  關閉套接字
        new_client_socket.close()
        print("已經爲這個客戶端服務完畢")
    tcp_sever_socket.close()
if __name__ == '__main__':
    main()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章