美文网首页Python总结
Day18 网络编程

Day18 网络编程

作者: 风月辞寒 | 来源:发表于2019-08-14 19:52 被阅读0次

一.套接字Server

1.什么是socket编程

socket又叫套接字, 指的是实现通信的两个端; 这两个端又分为服务器套接字和客户端套接字

2.服务器套接字

python中提供了一个socket模块来支持socket编程

1) 创建套接字对象(买电话机)

socket(family=AF_INET, type=SOCK_STREAM
family - 设置ip类型; AF_INET - ipv4; AF_INET6 - ipv6
type - 设置数据的传输方式; SOCK_STREAM - TCP, SOCK_DGRAM - UDP

server = socket()

2)绑定ip和端口(查电话线)

bind((ip地址, 端口号))

ip地址 - 字符串; 服务器程序运行在哪台计算机上, ip地址就是哪台计算的ip 10.7.181.115
端口号 - 整形; 范围是0~65535, 其中0~1024是著名端口, 有自己特殊的意义一般不随便使用

server.bind(('10.7.181.115', 6628))

3)等待连接并且设置同一时间能够接收的请求数量

server.listen(628)

4)让服务器保持一致运行的状态

while True:
    # 5)接收请求(接电话)
    # 注意: 当程序执行到accept()的时候, 会停下来直到有客户端给当前服务器发送请求位置

    connect, address = server.accept()
    # print(connect, address)
    # 6)接收客户端发送的数据(听电话)
    """
    recv(数据大小)  - 接收数据并且设置一次性能够接收的最大数据
    
    补充: 二进制转字符串
    二进制对象.decode(encoding='utf-8')
    str(二进制对象, encoding='utf-8')
    """
    while True:
        recv_data = connect.recv(1024)
        # print('接收:', recv_data.decode(encoding='utf-8'))
        print(str(recv_data, encoding='utf-8'))
    
        # 7)给客户端发送数据(说点话)
        """
        send(数据)    发送数据, 数据的类型必须是bytes
        HTTP/1.1 200 OK\r\n\r\n 
        """
        message = input('服务器输入:')
        connect.send(message.encode())
    
    # 8)关闭连接(挂电话)
    # connect.close()

二.套接字Client

1.创建套接字对象(买电话机)

client = socket()

2.发送请求(打电话)

connect(ip地址, 端口号)

client.connect(('10.7.181.115', 6628))
while True:
    # 3.发送消息
    message = input('客户端输入:')
    client.send(message.encode())

    # 4.接收消息
    re_data = client.recv(1024)
    print(re_data.decode(encoding='utf-8'))

# client.close()

相关文章

  • 3/24day18_网络编程_ TCP

    day18 复习 今日内容 网络编程概念(网络通信协议, IP地址, 端口号) TCP 网络编程 综合案例(文件上...

  • day18 网络编程

    socket编程 socket又叫套接字,指的就是实现通信过程的两个端。等待请求的一端叫服务端套接字,发送请求的一...

  • Day18 网络编程

    一.套接字Server 1.什么是socket编程 socket又叫套接字, 指的是实现通信的两个端; 这两个端又...

  • day18 网络编程作业

    客户端和服务器聊天,可以一直聊天,直到一方发送’拜拜’。然后就可以和下一个人一直聊 2.客户端给服务器发送请求,请...

  • day18 总结 - 网络编程

    01.recode 1.正则符号 a.匹配字符.\w\s\d\W\S\D[字符集] \ [^字符集] b.边界检测...

  • day18 网络编程基操

    [图片上传中...(image.png-e3421-1543649865352-0)] 1.OSI参考模型 2.O...

  • Android_开发_Day18_网络

    Android_开发Day18网络 目的: 学会建立网络连接,使用网络传输数据。 技术: <1> 网络: 所谓的网...

  • Android 网络编程 目录

    Android 网络编程 目录 Android 网络编程1 Http协议Android 网络编程2 Okhttp缓...

  • Linux网络编程篇之ICMP协议分析及ping程序实现

    Linux网络编程系列: Linux网络编程篇之Socket编程预备知识 Linux网络编程篇之TCP协议分析及聊...

  • iOS关于HTTP协议和网络编程

    1.网络编程 1>什么是网络编程? 网络编程,是我们iOS程序开发者针对网络模块进行得代码编程,是作为一个资深开发...

网友评论

    本文标题:Day18 网络编程

    本文链接:https://www.haomeiwen.com/subject/wbgnjctx.html