编写简单TCP通信程序。通信过程描述如下: (1)TCP客户端发起连接TCP服务端; (2)连接失败终止通信; (3)连接成功,TCP服务端向TCP客户端发送消息:"你好!欢迎对话";客户端收到后在屏幕上打印出信息并立即向服务端回应消息:"谢谢!";服务端收到后在屏幕上打印。
时间: 2024-09-22 10:08:41 浏览: 64
编写一个简单的TCP通信程序,可以分为服务器端和客户端两个部分。这里我们假设使用Python语言通过`socket`库来实现。
**服务器端(Server.py)**:
```python
import socket
def server():
host = 'localhost' # 或者你的IP地址
port = 12345 # 需要预先确定的端口号
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1) # 等待连接
print(f"服务器正在监听... (port {port})")
conn, addr = s.accept() # 接受连接
print(f"连接来自: {addr}")
data = b'你好!欢迎对话'
conn.sendall(data) # 发送数据到客户端
received_data = conn.recv(1024) # 接收客户端响应
print(f"接收到的数据: {received_data.decode()}")
conn.close()
s.close()
if __name__ == "__main__":
server()
```
**客户端(Client.py)**:
```python
import socket
def client():
host = 'localhost' # 同上
port = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, port)) # 连接服务器
print("已连接到服务器...")
message = "谢谢!"
s.sendall(message.encode()) # 发送消息给服务器
received_data = s.recv(1024) # 接收服务器回应
print(f"从服务器接收: {received_data.decode()}")
except ConnectionRefusedError:
print("连接失败,服务器未运行")
finally:
s.close()
print("关闭连接")
if __name__ == "__main__":
client()
```
在这个例子中,服务器首先启动监听,当客户端尝试连接时,如果连接成功会发送消息。客户端则尝试连接服务器,并在成功后发送感谢信息,然后等待并显示服务器的回复。如果连接过程中有任何错误,比如服务器未运行,客户端会捕获异常并停止通信。
阅读全文