利用TCP协议编写一个小型交互软件,要求如下: (1)建立文件TCPT.py,在该文件中定义类TCPTalk,其构造函数传入ip地址和端口号,成为其私有属性; (2)定义类TCPTalk的成员函数ServerU,建立一个服务器端应用,用于接收客户端的信息,并输出客户端发来的信息; (3)定义类TCPTalk的成员函数ClientU,建立一个客户端应用,用于向服务器端发送信息 (4)建立文件STT.py,在该文件中引入TCPTalk类,并定义一个ServerApp函数,在该函数中声明一个该类的对象,调用ServerU函数,创建接收信息服务器,运行这个函数,等待客户端发来信息。 (5)建立文件CTT.py,在该文件中引入TCPTalk类,并定义一个ClientApp函数,声明一个该类的对象,调用ClientU函数,向(4)中的服务器发信息。
时间: 2024-04-09 14:33:07 浏览: 100
我明白了你的要求,下面是利用TCP协议编写一个小型交互软件的代码示例:
**文件 TCPT.py:**
```python
import socket
class TCPTalk:
def __init__(self, ip, port):
self.ip = ip
self.port = port
def ServerU(self):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((self.ip, self.port))
server_socket.listen(1)
print("服务器已启动,等待客户端连接...")
client_socket, addr = server_socket.accept()
print("客户端已连接:", addr)
while True:
data = client_socket.recv(1024).decode()
if not data:
break
print("收到客户端消息:", data)
client_socket.close()
server_socket.close()
def ClientU(self):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((self.ip, self.port))
while True:
message = input("请输入要发送的消息(输入 q 退出):")
client_socket.send(message.encode())
if message == 'q':
break
client_socket.close()
```
**文件 STT.py:**
```python
from TCPT import TCPTalk
def ServerApp():
server = TCPTalk('127.0.0.1', 12345)
server.ServerU()
if __name__ == '__main__':
ServerApp()
```
**文件 CTT.py:**
```python
from TCPT import TCPTalk
def ClientApp():
client = TCPTalk('127.0.0.1', 12345)
client.ClientU()
if __name__ == '__main__':
ClientApp()
```
你可以将以上代码保存到相应的文件中,并通过运行 STT.py 和 CTT.py 来启动服务器和客户端应用。注意,服务器运行后会一直等待客户端连接,客户端可以通过输入消息与服务器进行交互。输入 'q' 可以退出客户端应用。
希望这个示例能够满足你的需求。如果有任何疑问,请随时提问!
阅读全文