• Python学习-15.Python的中的套接字socket


    Python应用最广泛的要数web方面了。因此,socket显得十分重要。

    要使用socket,必须引入socket模块,因此在Python脚本开头先写入

    1 import socket

    学过socket的都知道,就是客户端和服务端的通信。

    因此新建client.py和server.py文件。

    先编写server.py文件:

     1 import socket
     2 
     3 # 创建 TCP 协议的套接字。
     4 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     5 # 连接的 ip 地址。
     6 host = '127.0.0.1'
     7 # 目标端口。
     8 port = 12345
     9 address = ('127.0.0.1',12345)
    10 # 监听目标地址上的端口。
    11 server.bind(address)
    12 # 最多同时接受 1 个连接请求。
    13 server.listen(1)
    14 
    15 while True:
    16     # 接受连接。若没有连接则阻塞进程
    17     # server.accept() 返回的是一个 tuple。
    18     # clientSocket, clientAddress = server.accept()
    19     # 等价于
    20     # temp = server.accept()
    21     # clientSocket = temp[0]
    22     # clientAddress = temp[1]
    23     clientSocket,clientAddress = server.accept()
    24     # 接收并进行解码。1024 指的是缓冲区的大小。
    25     print(clientSocket.recv(1024).decode())
    26     # 将字符串编码并发回客户端。
    27     # 等价于
    28     # clientSocket.sendall(b'reply')
    29     clientSocket.sendall('reply'.encode())
    30     # 关闭与客户端的连接。
    31     clientSocket.close()
    32 else:
    33     # 关闭服务端监听端口的 socket。
    34     server.close()

    接下来编写client.py文件:

     1 import socket
     2 
     3 # 创建 TCP 协议的套接字。
     4 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     5 # 连接目标端口,连接失败将引发 ConnectionRefusedError 类型的异常。
     6 client.connect(('127.0.0.1',12345))
     7 # 将字符串编码后发送至服务端。
     8 # 等价于
     9 # client.send(b'hello')
    10 client.send('hello'.encode())
    11 # 接收服务端的内容并解码输出。
    12 print(client.recv(1024).decode())
    13 # 关闭与服务端连接的套接字。
    14 client.close()

    编写完毕后,就可以运行了。

    在server.py文件右键运行,接着在client.py文件右键再运行即可。

    运行效果:

  • 相关阅读:
    BZOJ 3992: [SDOI2015]序列统计
    BZOJ 4836: [Lydsy1704月赛]二元运算
    2.Add Two Numbers
    [RN] React Native 调试技巧
    [商业世界] 商业三流:信息流、资金流、物流
    [杂谈] 记 程序员 对抗失眠烦恼的 大法
    [未来成长]让写作成为一种生活习惯
    [未来成长] 分享:《麦肯锡教我的写作武器》如何写出一篇具有逻辑表现力的文案
    [未来成长] 分享:在腾讯的八年,我的职业思考
    [PHP]:AES对称加密 -- 支持PHP7
  • 原文地址:https://www.cnblogs.com/h82258652/p/3997376.html
Copyright © 2020-2023  润新知