这是一个关于使用套接字连接编写网络程序的示例。客户输入三角形的三边并发送给服务器,服务器计算三角形的面积并返回给客户。
时间: 2024-03-27 15:35:04 浏览: 120
triangle_matlab重载函数_triangle函数_三角形周长、面积计算_
5星 · 资源好评率100%
好的,这是一个使用 Python 编写的简单的客户端-服务器网络程序示例:
服务器端代码:
```python
import socket
import math
def calc_area(a, b, c):
# 计算三角形面积
p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))
return s
def main():
# 创建套接字并监听客户端请求
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8000))
server_socket.listen(5)
print('Server is listening...')
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print('Connection from:', client_address)
try:
# 接受客户端发送的三角形三边
data = client_socket.recv(1024)
a, b, c = [float(x) for x in data.decode().split()]
print('Received:', a, b, c)
# 计算三角形面积并发送给客户端
area = calc_area(a, b, c)
client_socket.send(str(area).encode())
print('Sent:', area)
except:
pass
# 关闭客户端连接
client_socket.close()
if __name__ == '__main__':
main()
```
客户端代码:
```python
import socket
def main():
# 创建套接字并连接服务器
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8000))
while True:
# 输入三角形三边并发送给服务器
a, b, c = [float(x) for x in input('Enter three sides of triangle: ').split()]
client_socket.send(f'{a} {b} {c}'.encode())
# 接受服务器返回的三角形面积并输出
area = client_socket.recv(1024).decode()
print('Area:', area)
# 关闭套接字
client_socket.close()
if __name__ == '__main__':
main()
```
当客户端运行时,它将要求用户输入三角形的三边,并将其发送到服务器。服务器接收这些数据,计算三角形面积并将其发送回客户端。客户端接收并显示面积。
阅读全文