python中socket模块详解


当前第2页 返回上一页

实例1:使用socketserver实现与上面socket()实例一样的功能

服务端程序代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

import socketserver

import time

  

HOST = '127.0.0.1'

PORT = 8009

ADDR = (HOST,PORT)

BUF_SIZE = 1024

  

class Myserver(socketserver.BaseRequestHandler):

    def handle(self):

        while True:

            print("...connected from:",self.client_address)

            data = self.request.recv(BUF_SIZE)

            if not data:break

            self.request.send(bytes("%s %s"%(time.ctime(),data)))

  

server = socketserver.ThreadingTCPServer(ADDR,Myserver)

print("waiting for connection...")

server.serve_forever()

11~17行

主要的工作在这里。从socketserver的BaseRequestHandler类中派生出一个子类,并重写handle()函数。

在有客户端发进来的消息的时候,handle()函数就会被调用。

19~21行

代码的最后一部分用给定的IP地址和端口加上自定义处理请求的类(Myserver)。然后进入等待客户端请求与处理客户端请求的无限循环中。

客户端程序代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import socket

HOST = '127.0.0.1'

PORT = 8009

ADDR = (HOST,PORT)

BUF_SIZE = 1024

  

client = socket.socket()

client.connect(ADDR)

  

while True:

    data = input(">>> ")

    if not data:continue

    client.send(bytes(data,encoding='utf-8'))

    recv_data = client.recv(BUF_SIZE)

    if not recv_data:break

    print(recv_data.decode())

  

client.close()

执行服务端和客户端代码  

下面是客户端输出

1

2

3

4

5

[root@pythontab]# python socketclient.py

>>> hello python

Thu Sep 15 23:53:31 2016 b'hello python'

>>> hello pythontab

Thu Sep 15 23:53:49 2016 b'hello pythontab'

下面是服务端输出

1

2

3

4

5

6

[root@pythontab]# python socketserver.py

waiting for connection...

...connected from: ('127.0.0.1', 55385)

...connected from: ('127.0.0.1', 55385)

...connected from: ('127.0.0.1', 55385)

...connected from: ('127.0.0.1', 55385)

以上就是python中socket模块详解的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python里fd是什么意思

Python压缩文件的效率高吗?

Python中什么是运算符

七种基础的Python运算符

学习Python将中文数字转化成阿拉伯数字

Python是什么意思?怎么读?

Python中class是什么意思

Python 语法串联

解析实例讲解什么是Python random模块

Python导入csv文件出现syntaxerror问题分析_Python

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...