码迷,mamicode.com
首页 > 编程语言 > 详细

Python中的socket模块

时间:2018-08-15 17:04:39      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:python   size   localhost   style   建立   utf-8   sock   开发   输入   

 

Python网络编程离不开socket模块

 

1. socket模块的简单使用,以开发一个简单的命令行工具为例,如下

  1.1 socket client 端代码

 1 # -*- coding:utf-8 -*-
 2 # Author:Wong Du
 3 
 4 import socket
 5 
 6 # 创建一个socket对象
 7 client = socket.socket()
 8 # 与服务器端建立连接
 9 client.connect( (localhost, 9494) )
10 
11 
12 while True:
13     # 获取用户输入内容
14     cli_send = input(">>: ").strip()
15     # 判断用户输入是否为空
16     if len(cli_send) == 0:
17         continue
18 
19     # 给服务器端发送数据,必须为bytes类型
20     client.send(cli_send.encode(encoding="utf-8"))
21 
22     # 接收服务器端返回的数据, 102400为接收数据的大小
23     data = client.recv(102400)
24     # 查看接收到的数据
25     print(data.decode())
26 
27 # 关闭连接
28 client.close()

  1.2 socket server 端代码

# -*- coding:utf-8 -*-
# Author:Wong Du

import os
import socket

# 创建一个socket连接
server = socket.socket()
# 绑定相应的IP和端口号
server.bind( (localhost, 9494) )
# 开始监听, 5为监听最大连接数
server.listen(5)
print("我要开始监听了~~")
# 等待请求连接,卡住;conn为连接对象,addr为连接身份
print("正在等待客户端请求连接~~")
conn, addr = server.accept()
print("接收到客户端连接,身份是: ", addr)

while True:
    # 接收客户端发来的命令,1024为接收数据的大小
    data = conn.recv(1024)
    # 执行命令并接收命令返回结果
    res = os.popen(data.decode()).read()
    # 如命令无返回结果
    if not res:
        res = Invalid command..

    # 将命令返回结果发给客户端,数据必须是bytes类型
    conn.send(res.encode(encoding=utf-8))


# 关闭连接
server.close()

 

Python中的socket模块

标签:python   size   localhost   style   建立   utf-8   sock   开发   输入   

原文地址:https://www.cnblogs.com/Caiyundo/p/9481970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!