前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Socket 服务

Socket 服务

作者头像
老七Linux
发布2018-06-07 10:37:24
1.5K0
发布2018-06-07 10:37:24
举报
文章被收录于专栏:Laoqi's Linux运维专列

实例一:

默认在宿主机开启一个端口,进行访问:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/6/6 18:33
# @Author  : zhdya
# @File    : socket.py

import http.server
import socketserver

port = 8000

host = '127.0.0.1'

address = (host, port)

handle = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(address, handle) as httpd:
    print("server start...")
    httpd.serve_forever()

多次访问后:

代码语言:javascript
复制
server start...
127.0.0.1 - - [06/Jun/2018 19:34:19] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:34:20] code 404, message File not found
127.0.0.1 - - [06/Jun/2018 19:34:20] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [06/Jun/2018 19:34:24] "GET /client.py HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:34:27] "GET /ssh_client.py HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:35:31] "GET /Server.py HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:35:35] "GET /ssh_server.py HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:37:49] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Jun/2018 19:37:50] "GET / HTTP/1.1" 200 -

二、socket server

代码语言:javascript
复制
socket不支持多并发,socketserver最主要的作用:就是实现一个并发处理,前面只是铺垫。 SocketServer主要是用于解决当多个客户端连接时, Socket服务端都会服务器上创建一个线程或进程来处理该客户端的请求,一个客户端对应一个后端的一个进程或者线程,这样增加系统的利用率。

socketserver就是对socket的再封装。SocketServer模块简化了网络服务器的开发。

实例二、模拟httpclient, 访问百度
代码语言:javascript
复制
import socket

host = 'www.baidu.com'
port = 80

new_ip = socket.gethostbyname(host)
print('Connect to', host, 'is', new_ip)

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((new_ip, port))
    request = "GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n"
    print(type(request))
    s.sendall(request.encode("utf-8"))
    # python3 sendall发送的不是string,而是bytes        python2   要求发送的是string
    reply = s.recv(80960)
    if reply:
        print('ok!')
    else:
        print('on!')
    print(reply)
    s.close()
except socket.error as e:
    print(e)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/06/06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实例一:
  • 二、socket server
    • 实例二、模拟httpclient, 访问百度
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档