import threading
from socket import socket

import sys

host = "127.0.0.1"
port = 1234


def receiveForever(clientSocket):
    while True:
        try:
            # 接收服务端消息(bytes)
            msg = clientSocket.recv(1024).decode("utf-8")
            if msg == "" or msg == None:
                exit(clientSocket)
                break
            print("\n收到服务端消息:", msg)

            if msg == "fuck off":
                exit(clientSocket)
                break

        except:
            exit(clientSocket)
            break


def exit(clientSocket):
    try:
        print("服务端已断开连接")
        clientSocket.close()
    except:
        pass


def sendForever(clientSocket, receiverThread):
    while True:

        try:
            if receiverThread.is_alive():
                msg = input("你对ta说:")

                # 向服务端发送消息(bytes)
                clientSocket.send(msg.encode("utf-8"))
            else:
                raise ConnectionAbortedError("服务端叫我fuck off")
        except Exception:
            exit(clientSocket)
            break


if __name__ == "__main__":
    # 创建套接字对象
    clientSocket = socket()

    # 通过服务端地址(IP+端口),申请连接服务端socket
    res = clientSocket.connect((host, port))
    print(res)  # None

    rt = threading.Thread(target=receiveForever, args=(clientSocket,))
    st = threading.Thread(target=sendForever, args=(clientSocket, rt))

    rt.start()
    st.start()
    st.join()
    rt.join()

    print("main over")

results matching ""

    No results matching ""