python socket

本文介绍了一个简单的Python程序,该程序实现了基于UDP协议的服务器和客户端。服务器接收来自客户端的消息并将其转换为大写形式再返回给客户端。客户端连接到服务器并发送消息,接收服务器返回的大写消息。

server

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import socket


def main():
    host = "127.0.0.1"
    port = 5000

    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.bind((host, port))

    print("Server started")
    while True:
        data, addr = s.recvfrom(1024)
        print("Message from: " + str(addr))
        print("From connected user: " + str(data))
        data =  str(data).upper()
        print("Sending: " + str(data))
        s.sendto(bytes(data, "utf-8"), addr)
    s.close()


if __name__ == '__main__':
    print("socket server running...")
    main()

 

client

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import socket


def main():
    host = "127.0.0.1"
    port = 5001

    server = ("127.0.0.1", 5000)

    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.bind((host, port))

    message = input("-->")
    while message != "q":
        s.sendto(bytes(message, "utf-8"), server)
        data, addr = s.recvfrom(1024)
        print("Received from server: " + str(data))
        message = input("-->")
    s.close()


if __name__ == '__main__':
    main()

 

转载于:https://www.cnblogs.com/vickey-wu/p/7675172.html

### Python Socket 编程概述 Python 的 `socket` 库提供了访问底层套接字接口的功能,使得开发者能够创建高效的客户端和服务器应用程序。通过该库可以实现不同主机之间的数据传输[^1]。 ### 创建基本的 TCP 客户端和服务端程序 #### 服务端代码示例 下面是一个简单的TCP回显服务器的例子: ```python import socket def start_server(host='localhost', port=8080): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((host, port)) s.listen() conn, addr = s.accept() # 接受来自任何客户端的连接请求 with conn: print('Connected by', addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data) if __name__ == "__main__": start_server() ``` 这段代码定义了一个函数来启动一个监听指定地址和端口的服务端实例[^3]。 #### 客户端代码示例 这里有一个配套使用的TCP客户端脚本: ```python import socket def connect_to_server(message, host='localhost', port=8080): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((host, port)) # 连接到给定IP地址和端口号上的远程机器 s.sendall(message.encode()) response = s.recv(1024).decode() return response if __name__ == "__main__": message = "Hello, world" reply = connect_to_server(message) print(f"Received {reply!r}") ``` 此部分展示了如何建立与上述服务器的连接并发送消息以及接收响应。 ### 实现更复杂的应用场景 除了基础的消息传递外,还可以利用Socket来进行更多类型的交互操作,比如构建支持多个用户的聊天室应用或是模仿HTTP协议的行为等[^2]。 对于想要深入了解这些高级特性的读者来说,建议进一步研究有关I/O多路复用技术(如select/poll/epoll)、异步IO等内容,这有助于提高并发处理能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值