• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

socket 套接字通信

python 搞java代码 3年前 (2022-05-21) 20次浏览 已收录 0个评论

socket 套接字通信

1、什么是socket

  socket是一个模块,又称套接字,用来封装 互联网协议(应用层以下的层)

 

 

2、socket的作用

  socket可以实现互联网协议应用层以下的层的工作

 

 

 

3、怎么使用socket

  import socket

  写socket套接字:

    Client

    Server

 

  server.py文件内容:

<span>"""</span><span>
先启动套接字服务端
    注意:
        客户端一次发送,服务端先一次接收,再发送
</span><span>"""</span>
<span>import</span><span> socket

</span><span>#</span><span> 就好像:买手机</span>
server =<span> socket.socket()

</span><span>#</span><span> 绑定手机卡</span><span>
#</span><span> ip地址相当于手机号码</span>
server.bind((<span>"</span><span>127.0.0.1</span><span>"</span>, 9527<span>))

</span><span>#</span><span> 半连接池</span>
server.listen(5)    <span>#</span><span> 最多5个人坐椅子   实际上==6</span>

<span>#</span><span> 循环实现可接收多了用户访问</span>
<span>while</span><span> True:
    </span><span>#</span><span> 等待电话接入  --->  客户端</span>
    <span>#</span><span> conn:指的是服务端通往客户端的管道</span>
    conn, addr =<span> server.accept()

    </span><span>#</span><span> 循环实现循环通信</span>
    <span>while</span><span> True:
        </span><span>try</span>:    <span>#</span><span> 监听代码块是否有异常</span>
            <span>#</span><span> 接听对方讲话的内容</span>
            <span>#</span><span> data 客户端发送过来的消息</span>
            data = conn.recv(1024)  <span>#</span><span> 可接收一次1024 bytes的数据</span>
            <span>if</span> data.decode(<span>"</span><span>utf-8</span><span>"</span>) == <span>"</span><span>q</span><span>"</span><span>:
                </span><span>break</span>
            <span>if</span> len(data) ==<span> 0:
                </span><span>break</span>
            <span>print</span><span>(data)

            </span><span>#</span><span> 服务端向客户端发送消息</span>
            res = input(<span>"</span><span>请回复客户端消息>>> </span><span>"</span><span>)
            conn.send(res.encode(</span><span>"</span><span>utf-8</span><span>"</span><span>))
        </span><span>#</span><span> 捕获异常信息</span>
        <span>except</span><span> Exception as e:
            </span><span>#</span><span> 打印异常</span>
            <span>print</span><span>(e)
            </span><span>break</span>


    <span>#</span><span> 关闭通信,挂电话</span>
    conn.close()

www#gaodaima.com来源gaodai#ma#com搞@@代~&码*网搞代码

  client.py文件内容:

<span>"""</span><span>
启动服务端后再启动客户端
</span><span>"""</span>
<span>import</span><span> socket

</span><span>#</span><span> 买手机</span>
client =<span> socket.socket()

</span><span>#</span><span> 拨号</span><span>
#</span><span> 客户端的ip,port必须与服务器一致</span>
client.connect((<span>"</span><span>127.0.0.1</span><span>"</span>, 9527<span>))

</span><span>#</span><span> 循环实现可接收多次服务端返回信息以及访问服务端信息</span>
<span>while</span><span> True:
    send_data </span>= input(<span>"</span><span>请发送服务端消息>>> </span><span>"</span><span>)
    </span><span>#</span><span> 讲话给对方听</span>
    <span>#</span><span> 必须发送bytes</span>
    <span>#</span><span> client.send(b"hello")</span>
    <span>#</span><span> 或者编码</span>
    client.send(send_data.encode(<span>"</span><span>utf-8</span><span>"</span><span>))
    </span><span>#</span><span> 客户端收到服务端返回信息</span>
    data = client.recv(1024<span>)
    </span><span>if</span> data.decode(<span>"</span><span>utf-8</span><span>"</span>) == <span>"</span><span>q</span><span>"</span><span>:
        </span><span>break</span>
    <span>if</span> len(data) ==<span> 0:
        </span><span>break</span>
    <span>print</span><span>(data)

</span><span>#</span><span> 关闭通信,挂电话</span>
client.close()

 

  执行结果自行测试。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:socket 套接字通信

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址