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

Socket 服务

作者头像
老七Linux
发布2018-06-07 10:37:24
1.4K0
发布2018-06-07 10:37:24
举报

实例一:

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

代码语言: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()
mark
mark

多次访问后:

代码语言: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, 访问百度
    相关产品与服务
    专用宿主机
    专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档