40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
import argparse
|
|
import socket
|
|
|
|
def send_client(msg: str, addr: str, port: int, name: str):
|
|
'''发送消息给聊天室服务器。
|
|
|
|
需要输入消息、地址、端口、昵称'''
|
|
try:
|
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
s.connect((addr, port))
|
|
s.sendall(f"{name}: {msg}".encode('utf-8'))
|
|
s.close()
|
|
print('success')
|
|
except ConnectionRefusedError:
|
|
print(f"Could not connect to {addr}:{port}")
|
|
except Exception as e:
|
|
print(f"Unexpected error: {e}")
|
|
|
|
class ChatComm:
|
|
'''与聊天服务器进行交流的类。'''
|
|
def __init__(self, addr: str, port: int, name: str):
|
|
self.addr = addr
|
|
self.port = port
|
|
self. name = name
|
|
def send(self, msg: str):
|
|
send_client(msg, self.addr, self.port, self.name)
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='发送到聊天室。')
|
|
parser.add_argument("--msg", type=str, help="要发送的消息")
|
|
parser.add_argument('--addr', type=str, default='localhost', help='选择要连接的地址')
|
|
parser.add_argument('--port', type=int, default=8003, help='选择要连接的地址')
|
|
parser.add_argument('--name', type=str, default='Unknow', help='你的名字是什么')
|
|
args = parser.parse_args()
|
|
comm = ChatComm(args.addr, args.port, args.name)
|
|
comm.send(args.msg)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|