美文网首页
用上下文协议写一个tcp连接

用上下文协议写一个tcp连接

作者: hugoren | 来源:发表于2018-10-26 10:52 被阅读0次

ipv4 版

import socket

class Socket(object):
    def __init__(self,host,port):
        self.host = host
        self.port = port

    def __enter__(self):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind((self.host,self.port))
        sock.listen(5)
        self.sock = sock
        return self.sock

    def __exit__(self,*exc_info):
        if exc_info[0] is not None:
            import traceback
            traceback.print_exception(*exc_info)
        self.sock.close()

if __name__=="__main__":
    host = 'localhost'
    port = 5566
    with Socket(host, port) as s:
        while True:
            conn, addr = s.accept()
            msg = conn.recv(1024)
            print(msg)
            conn.send(msg)
            conn.close()

ipv6版

import contextlib
import socket

host = "::1"
port = 5566


@contextlib.contextmanager
def server(host, port):
    s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM, 0)
    try:
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind((host, port))
        s.listen(10)
        yield s
    finally:
        s.close()


with server(host, port) as s:
    try:
        while True:
            conn, addr = s.accept()
            msg = conn.recv(1024)

            if msg:
                conn.send(msg)

            conn.close()
    except KeyboardInterrupt:
        pass

相关文章

  • 用上下文协议写一个tcp连接

    ipv4 版 ipv6版

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

  • tcp三次握手

    TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时...

  • tcp协议和udp协议的差别

    tcp协议和udp协议的差别 TCP UDP 是否连接 面向连接 面向非连接 传输可...

  • TCP、HTTP

    TCP TCP((Transmission Control Protocol)传输控制协议,是一个面向连接的协议。...

  • 计算机网络复习

    传输层 TCP TCP连接管理 TCP 是面向连接的协议。每一个 TCP 连接有三个阶段:连接建立、数据传送、连接...

  • TCP握手协议

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连...

  • tcp、http和socket的区别

    一:tcp协议 tcp协议属于传输层协议(UDP也属于传输层协议,但是UDP协议是无状态的)。建立一个TCP连接需...

  • TCP/IP、Http、Socket的区别

    ip协议:网络连接用的 TCP协议:网络传输协议,连接时要符合三次握手定理 socket:是一个封装TCP协议的a...

  • TCP的三次握手和四次挥手

    TCP协议介绍TCP(Transmission Control Protocol),是一个面向连接的协议,在运用次...

网友评论

      本文标题:用上下文协议写一个tcp连接

      本文链接:https://www.haomeiwen.com/subject/ckxuzftx.html