socket 套接字服務器端和客戶端發送信息


import socket
import threading
host=''
port=6889

def cilenThred(conn,addr):
    print("成功接受客戶端{}的連接:{}".format(addr[0],str(addr[1])))
    #服務器向客戶端發送信息說明已經連接成功
    msg='你已經成功連接到服務器'
    conn.sendall(bytes(msg,encoding="utf-8"))
    while True:
        data=conn.recv(1024)
        print("服務器接受到的數據為{}".format(str(data,encoding="utf-8")))
        message='server>>{}'.format(str(data,encoding="utf-8"))
        conn.sendall(bytes(message,encoding="utf-8"))
        chioce = str(conn.recv(1024),encoding="utf-8")
        if chioce=="exit":
            conn.close()
            break
        else:
            pass

try:
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    #綁定ip地址和端口號
    s.bind((host,port))
    print('成功綁定了ip地址,端口號為{}'.format(port))
    #服務器創建監聽
    s.listen(10)
    print("創建監聽模式")
    while True:
        #成功接收客戶端的連接,兵返回連接對象和地址
        conn,addr=s.accept()
        t=threading.Thread(target=cilenThred,args=(conn,addr))
        t.start()
except socket.error as msg:
    print("socket出現錯誤,錯誤為{}".format(msg))
finally:
    s.close()

客戶端:

import socket
import sys

host="localhost"
port=6889

try:
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print('成功創建socket對象')
    s.connect((host,port))
    print("成功連接到服務器端")
    reply=str(s.recv(1024),encoding="utf-8")
    print("成功接受到服務器返回的內容:{}".format(reply))
    while True:
        message=input("請輸入要發送到服務器的信息》》")
        s.sendall(bytes(message,encoding="utf-8"))
        print("向服務器發送請求成功")
        reply1=str(s.recv(1024),encoding="utf-8")
        print("成功接受到服務器返回的內容{}".format(reply1))
        chioce=input("是否繼續輸入?(y/n)")
        if chioce.lower()=="y":
            s.sendall(bytes("ok",encoding="utf-8"))
            pass
        else:
            s.sendall(bytes("exit",encoding="utf-8"))
            print("輸入結束")
            break
except socket.error as msg:
    print("創建socket錯誤,錯誤為{0}".format(msg))
    sys.exit(-1)
finally:
    s.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM