python 循环收发 tcp 脚本
时间: 2023-08-02 08:13:11 浏览: 142
下面是一个 Python 循环收发 TCP 数据的脚本:
```python
import socket
HOST = '127.0.0.1' # 服务器 IP 地址
PORT = 8888 # 服务器端口号
# 创建 TCP socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
s.connect((HOST, PORT))
while True:
# 发送数据
msg = input("请输入要发送的消息:")
s.sendall(msg.encode())
# 接收数据
data = s.recv(1024)
print("接收到的消息:", data.decode())
# 关闭连接
s.close()
```
这个脚本使用了 `socket` 模块创建了一个 TCP socket 对象,然后通过 `connect` 方法连接到指定的服务器。在循环中,用户可以输入要发送的消息并通过 `sendall` 方法发送给服务器,然后通过 `recv` 方法接收服务器返回的数据,并打印出来。当用户想要退出时,可以通过 `Ctrl-C` 组合键中断程序并关闭连接。
相关问题
python 循环收发 tcp 服务端与客户端脚本
以下是一个简单的 Python TCP 服务端与客户端脚本,可以循环收发消息:
TCP 服务端脚本:
```python
import socket
SERVER_HOST = '0.0.0.0'
SERVER_PORT = 8080
def handle_client(client_socket):
while True:
# 接收客户端消息
request = client_socket.recv(1024)
if not request:
break
print(f'Received message: {request.decode()}')
# 发送响应消息
response = f'You sent me: {request.decode()}'.encode()
client_socket.send(response)
# 关闭客户端连接
client_socket.close()
# 创建 TCP 套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定服务器地址和端口
server_socket.bind((SERVER_HOST, SERVER_PORT))
# 监听来自客户端的连接
server_socket.listen(1)
print(f'Server listening on {SERVER_HOST}:{SERVER_PORT}')
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print(f'Client connected from {client_address[0]}:{client_address[1]}')
# 处理客户端请求
handle_client(client_socket)
```
TCP 客户端脚本:
```python
import socket
SERVER_HOST = '127.0.0.1'
SERVER_PORT = 8080
# 创建 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((SERVER_HOST, SERVER_PORT))
print(f'Connected to {SERVER_HOST}:{SERVER_PORT}')
while True:
# 发送消息
message = input('> ')
client_socket.send(message.encode())
# 接收响应消息
response = client_socket.recv(1024)
print(f'Received response: {response.decode()}')
```
使用时,先运行服务端脚本,再运行客户端脚本,即可在客户端输入消息并发送,服务端将会收到并打印消息,并返回响应消息给客户端。客户端将会收到响应消息并打印。
如何写一个python代码如何利用网络调试助手进行收发数据
在Python中,我们可以使用内置的`socket`模块来创建一个简单的网络调试助手,用于收发数据。这里是一个基本的例子,展示如何创建一个服务器监听客户端连接,并发送接收到的数据:
```python
import socket
# 创建一个TCP/IP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 12345) # 地址和端口
server_socket.bind(server_address)
server_socket.listen(1) # 等待一个客户端连接
print(f"Server is running on {server_address}.")
while True:
# 接受客户端连接
client_connection, client_address = server_socket.accept()
print(f"Accepted connection from {client_address}.")
try:
# 循环接收并打印客户端的数据
data = client_connection.recv(1024).decode('utf-8')
print(f"Received message: {data}")
# 发送数据回客户端
response = "Hello from Server!"
client_connection.sendall(response.encode('utf-8'))
print(f"Sent message to client: {response}")
except Exception as e:
print(f"Error: {e}")
break
finally:
# 关闭连接
client_connection.close()
server_socket.close() # 关闭服务器套接字
```
在这个例子中,你可以通过运行这个服务器脚本,然后使用另一个终端窗口运行一个简单的客户端,比如:
```shell
$ python client.py localhost 12345
Send some data to server...
```
在客户端(`client.py`)中,你需要发送数据到指定的服务器地址和端口。
阅读全文