服务端:(本机测试)

from socket import *
from time import *
import threading

HOST = gethostname()
PORT = 2001
ADDR = (HOST,PORT)

tcps = socket(AF_INET,SOCK_STREAM)
tcps.bind(ADDR)
tcps.listen(5)

def recv_msg(con):
    try:
        while True:
            message = con.recv(1024).decode()
            print(message)
            if message == 'quit':
                con.close()
    except ConnectionAbortedError:
        return '您已经断开连接。'
    except OSError:
        return '对方断开了连接'

def send_mag(con):
    try:
        while True:
            data = input('>>')
            con.send(data.encode())
            if data == 'quit':
                con.close()
    except ConnectionAbortedError:
        return '您已经断开连接。'
    except OSError:
        return '对方断开了连接'

while True:
    print('waiting for connection...')
    con,addr = tcps.accept()
    print('...connected from:',addr)
    r = threading.Thread(target=recv_msg,args=(con,))
    s = threading.Thread(target=send_mag,args=(con,))
    r.start()
    s.start()
tcps.close()

客户端:

from socket import *
from time import *
import threading

HOST = gethostname()
PORT = 2001
ADDR = (HOST,PORT)

def recv_msg(con):
    try:
        while True:
            message,a = con.recvfrom(1024)
            print(message.decode())
            if message.decode() == 'quit':
                con.close()
    except ConnectionAbortedError:
        return '您已经断开连接。'
    except OSError:
        return '对方断开了连接'

def send_mag(con):
    try:
        while True:
            data = input('>>')
            con.send(data.encode())
            if data == 'quit':
                con.close()
    except ConnectionAbortedError:
        return '您已经断开连接。'
    except OSError:
        return '对方断开了连接'

tcpc = socket(AF_INET,SOCK_STREAM)
tcpc.connect(ADDR)
r = threading.Thread(target=recv_msg,args=(tcpc,))
s = threading.Thread(target=send_mag,args=(tcpc,))
r.start()
s.start()

 

相关文章: