python学习之socket通讯

python可以实现socket服务器的编写,实现监听客户端的请求,并完成相应的业务逻辑基于应答。

第一种方式是通过socket原生态的方式,我们自己绑定主机和端口等:

from socket import *
#不指定host表示允许多个ip访问
myhost = ''
myport = 8087
#AF_INET表示ipv4  SOCK_STREAM表示以流的方式读取和发送
socketobj = new socket(AF_INET,SOCK_STREAM)
#绑定host和port
socketobj.bind((myhost,myport))
#同时允许128个请求同时访问
socketobj.listen(128)


while True:
#连接,获取地址
    connection, address = socketobj.accept()
    print 'connect by ' + str(address)
#每次获取1024个字节
    data = connection.recv(1024)
#向客户端回送消息
    connection.send('echo ' + data)
#关闭连接,短连接

    connection.close()


第二种方式是通过TCPServer和BaseRequestHanddler实现服务绑定操作

from SocketServer import TCPServer,BaseRequestHandler
import traceback


class MySocketRequestHadler(BaseRequestHandler):
    """
    define by myself about handler
    """
    def handle(self):
        #read the data from cleint and send something to cleint
        while(True):
            try:
                #read 1024 byte every time
                data = self.request.recv(1024).strip()
                #print the source
                print('receive data from (%r) %r' %(self.client_address,data))
                self.request.sendall(data.upper() + '\n')
            except:
                tranceback.print_exc()
                break


if __name__ == '__main__':
    host = ""
    port = 8080
    addr = (host,port)
    #instance TCPServer
    server = TCPServer(addr,MySocketRequestHadler)
    #start server

    server.serve_forever()


下一篇实现第三种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值