Python的网络编程和socket(通过故事来学习)

有一天,有一个名叫小云的开发者,她刚学了 Python 网络编程,并且想试着用 socket 编写一个简单的客户端-服务器程序。

小云打开了她的 Python 编辑器,开始编写客户端的代码。她创建了一个 socket 对象,然后使用该对象连接到服务器。她编写了以下代码:

```python
import socket 
import sys

def client_program():
    host = socket.gethostname()  # 获取主机名
    port = 5000  # 设置端口号

    client_socket = socket.socket()  # 创建 socket 对象
    client_socket.connect((host, port))  # 连接服务器

    message = input(" -> ")  # 输入消息 
    client_socket.send(message.encode())  # 发送消息 

    data = client_socket.recv(1024).decode()  # 接收消息

print('Received from server: ' + data)  # 打印接收到的消息 

    client_socket.close()  # 关闭连接


if __name__ == '__main__':
    client_program()
```

小云很高兴自己能够编写出这样的客户端程序。但是她知道,这个程序还没有完成。她还需要编写一个简单的服务器程序来处理客户端发送的消息。

于是,小云开始编写服务器的代码。她创建了一个 socket 对象,并让该对象监听来自客户端的连接请求。当客户端连接到服务器后,服务器接收并处理客户端发送的消息。

以下是她编写的服务器代码:

```python
import socket 
import sys

def server_program():
    host = socket.gethostname()  # 获取主机名
    port = 5000  # 设置端口号 

    server_socket = socket.socket()  # 创建 socket 对象
    server_socket.bind((host, port))  # 绑定端口 

    server_socket.listen(2)  # 监听连接请求

conn, address = server_socket.accept()  # 接受客户端连接
    print("Connection from: " + str(address))

    while True:
        data = conn.recv(1024).decode()  # 接收消息 
        if not data:
            break

        print("from connected user: " + str(data))

        data = str(data).upper()  # 将消息转换为大写
        print("sending: " + str(data))
        conn.send(data.encode())  # 发送消息 

    conn.close()  # 关闭连接


if __name__ == '__main__':
    server_program()
```

小云很自豪地运行了她的客户端和服务器程序,并在命令行中输入了一些消息。她很高兴地发现,她能够成功地发送和接收消息,并用服务器将消息转换为大写后返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲代码的主持人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值