docker下的socket端口配置

发布于 2022-09-12 22:14:55 字数 1750 浏览 19 评论 0

socket 绑定IP和端口到套接字

win10本地测试,通过 http://127.0.0.1:8800/
可以访问

image.png

linux系统的docker环境下启动后,
无法通过linux服务器的IP地址+端口: 8800进行访问

# -*- coding: utf-8 -*-
"""
Python 网络编程
套接字的作用
    Socket 又叫做 "套接字",
    应用程序通常通过 "套接字" 向网络发出请求或者应答网络请求
    使主机间或者一套计算机上的进程间可以通讯

Socket 对象(内建) 方法
    1. s.bind() 函数 : 服务端套接字
        绑定地址 (host, port) 到套接字
        在 AF_INET 下, 以元组(host, port)的形式表示地址

    2. s.accept()
        被动接受 TCP 客户端连接
        (阻塞式) 等待连接的到来

    公共用途的套接字函数
    3. s.recv()
        接收 TCP 数据
        数据返回形式: 字符串
        bufsize: 指定要接收的最大数据量
        flag提供有关消息的其他信息,通常可以忽略

"""

import socket


def SocketFlow():
    """
    socket 的流程
        s = socket.socket() 创建套接字
        s.bind() 绑定地址到套接字
        s.accept() 等待TCP连接的到来 【被动】
        s.recv() 接收TCP数据, 数据返回形式 为 字符串 string
        s.send() 发送TCP 数据 将 string 中的数据 发送到连接的套接字
            返回值是要发送的字节数量, 该数量可能小于 string 的字节大小
    """
    sock = socket.socket()  # doc1.创建套接字
    # sock.bind(("127.0.0.1", 8800))  # doc2. s.bind()函数作为服务端套接字,绑定地址 (host, port) 到套接字
    sock.bind(("0.0.0.0", 8005))  # doc2. s.bind()函数作为服务端套接字,绑定地址 (host, port) 到套接字
    sock.listen(5)


    while 1:
        print("server wating......")
        conn, addr = sock.accept()  # doc3. s.accept() 函数 被动接受 TCP 客户端连接, (阻塞式) 等待连接的到来
        data = conn.recv(1024)  # doc4. s.s.recv 接收 TCP数
        print("data", data)
        conn.send(b"hello luffycity!")  # doc45. 发送 TCP 数据
        conn.close()


SocketFlow()



image.png

请问需要修改什么,才可以在docker下启动后,通过地址IP+端口: 8800可以访问

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗笺 2022-09-19 22:14:56

docker run 的时候你没有加 -p 参数暴露端口?

防火墙放行了相关端口了么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文