zoukankan      html  css  js  c++  java
  • 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文件右键再运行即可。

    运行效果:

  • 相关阅读:
    【C++】<bits/stdc++.h>
    【网易】被3整除
    【TCP/IP详解】UDP:用户数据报协议
    【网易】牛牛找工作
    【C++】<numeric>中iota函数:递增序列填充

    今天好像找到C语言延迟输出的原因了
    C语言第2
    c语言新知
    glade No package 'libxml-2.0' found
  • 原文地址:https://www.cnblogs.com/h82258652/p/3997376.html
Copyright © 2011-2022 走看看