zoukankan      html  css  js  c++  java
  • Python--网络编程-----socket编程示例--打电话

    一、服务端

     1 import socket
     2 
     3 
     4 # 1、买手机
     5 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     6 # print(phone)
     7 
     8 # 2、绑定手机卡
     9 phone.bind(('127.0.0.1', 8080)) # 0-65535:0-1024给操作系统使用
    10 
    11 # 3、开机
    12 phone.listen(5)
    13 
    14 # 4、等电话连接
    15 print('starting.....')
    16 res = phone.accept()
    17 print('=======>')
    18 print(res)

    运行服务端,会卡在res = phone.accept()等待连接

    二、客户端

    1 import socket
    2 
    3 
    4 # 1、买手机
    5 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    6 # print(phone)
    7 
    8 # 2、拨号
    9 phone.connect(('127.0.0.1', 8080))

    先运行服务端,然后运行客户端,结果为:

    1 1 服务端结果为:
    2 2 
    3 3 starting.....
    4 4 =======>
    5 5 (<socket.socket fd=480, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8080), raddr=('127.0.0.1', 61788)>, ('127.0.0.1', 61788))

    三、完整的一次通信代码

     1 服务端:
     2 
     3 # 1、买手机
     4 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     5 # print(phone)
     6 
     7 # 2、绑定手机卡
     8 phone.bind(('127.0.0.1', 8080)) # 0-65535:0-1024给操作系统使用
     9 
    10 # 3、开机
    11 phone.listen(5)
    12 
    13 # 4、等电话连接
    14 print('starting.....')
    15 conn, client_addr = phone.accept()
    16 
    17 # 5、收、发信息
    18 data = conn.recv(1024)  # 1、单位:bytes 2、1024代表最大接受1024个bytes
    19 print('客户端的数据', data)
    20 
    21 conn.send(data.upper())
    22 
    23 # 6、挂电话
    24 conn.close()
    25 
    26 # 7、关机
    27 phone.close()
    28 
    29 客户端:
    30 
    31 import socket
    32 
    33 
    34 # 1、买手机
    35 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    36 # print(phone)
    37 
    38 # 2、拨号
    39 phone.connect(('127.0.0.1', 8080))
    40 
    41 # 3、发、收消息
    42 phone.send('hello'.encode('utf-8'))
    43 data = phone.recv(1024)
    44 print(data)
    45 
    46 # 4、关闭
    47 phone.close()

    服务端运行结果为:

    1 starting.....
    2 客户端的数据 b'hello'

    客户端运行结果为:

    1 b'HELLO'
  • 相关阅读:
    opencv图片拼接报错cv::Stitcher::ERR_NEED_MORE_IMGS (1)
    python 安装包
    推荐系统之基于邻域的算法-------协同过滤算法
    推荐系统学习之评测指标
    推荐系统之基于图的推荐:基于随机游走的PersonalRank算法
    又一次面试
    隐马尔科夫模型
    斯坦福大学机器学习——高斯判别分析
    python总结
    <转>ML 相关算法参考
  • 原文地址:https://www.cnblogs.com/xudachen/p/8723353.html
Copyright © 2011-2022 走看看