当前位置:
首页 > Python基础教程 >
-
Python Socket实现简单TCP Server/client功能示例
在Python中,使用socket库可以很容易地实现简单的TCP服务器和客户端功能。以下是一个基本的示例,展示了如何创建一个TCP服务器和一个TCP客户端。
### TCP服务器
TCP服务器的主要任务是监听来自客户端的连接请求,接受连接,然后处理数据交换。
### TCP客户端
TCP客户端的主要任务是连接到服务器,发送数据,并接收来自服务器的响应。
### 运行说明
1. 首先,运行TCP服务器代码。它将监听本地主机的12345端口。
2. 然后,运行TCP客户端代码。它将连接到服务器,并发送一条消息。
3. 服务器将接收客户端的消息,打印出来,然后发送一条响应消息给客户端。
4. 客户端将接收服务器的响应消息,打印出来,并关闭连接。
5. 服务器也将关闭连接。
注意:这个示例是非常基础的,它只处理了一个客户端的连接。在实际应用中,服务器通常需要能够同时处理多个客户端的连接,这通常涉及到多线程或多进程编程。此外,为了增强代码的健壮性,还需要添加错误处理和异常捕获机制。
最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python50238.html
### TCP服务器
TCP服务器的主要任务是监听来自客户端的连接请求,接受连接,然后处理数据交换。
import socket
def tcp_server(host='127.0.0.1', port=12345):
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口号
server_socket.bind((host, port))
# 监听连接
server_socket.listen()
print(f"Server is listening on {host}:{port}")
# 接受客户端连接
client_socket, addr = server_socket.accept()
print(f"Connected by {addr}")
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"Received: {data}")
# 发送数据
client_socket.sendall("Hello from server!".encode('utf-8'))
# 关闭连接
client_socket.close()
server_socket.close()
if __name__ == "__main__":
tcp_server()
def tcp_server(host='127.0.0.1', port=12345):
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口号
server_socket.bind((host, port))
# 监听连接
server_socket.listen()
print(f"Server is listening on {host}:{port}")
# 接受客户端连接
client_socket, addr = server_socket.accept()
print(f"Connected by {addr}")
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"Received: {data}")
# 发送数据
client_socket.sendall("Hello from server!".encode('utf-8'))
# 关闭连接
client_socket.close()
server_socket.close()
if __name__ == "__main__":
tcp_server()
### TCP客户端
TCP客户端的主要任务是连接到服务器,发送数据,并接收来自服务器的响应。
import socket
def tcp_client(server_host='127.0.0.1', server_port=12345):
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client_socket.connect((server_host, server_port))
# 发送数据
client_socket.sendall("Hello from client!".encode('utf-8'))
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"Received: {data}")
# 关闭连接
client_socket.close()
if __name__ == "__main__":
tcp_client()
def tcp_client(server_host='127.0.0.1', server_port=12345):
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client_socket.connect((server_host, server_port))
# 发送数据
client_socket.sendall("Hello from client!".encode('utf-8'))
# 接收数据
data = client_socket.recv(1024).decode('utf-8')
print(f"Received: {data}")
# 关闭连接
client_socket.close()
if __name__ == "__main__":
tcp_client()
### 运行说明
1. 首先,运行TCP服务器代码。它将监听本地主机的12345端口。
2. 然后,运行TCP客户端代码。它将连接到服务器,并发送一条消息。
3. 服务器将接收客户端的消息,打印出来,然后发送一条响应消息给客户端。
4. 客户端将接收服务器的响应消息,打印出来,并关闭连接。
5. 服务器也将关闭连接。
注意:这个示例是非常基础的,它只处理了一个客户端的连接。在实际应用中,服务器通常需要能够同时处理多个客户端的连接,这通常涉及到多线程或多进程编程。此外,为了增强代码的健壮性,还需要添加错误处理和异常捕获机制。
最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python50238.html
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比