• 网络编程


    网络编程

    a,软件

      客户端: CS架构,client--> server

      浏览器:BS 架构 , browser --> server

    b,如何实现相互通信

      需求一:编写俩个软件,软件之间相互通信

      需求二:俩个人直接连接(网线)

      需求三: 教室相互通信(交换机)

          使用ip地址:ipconfig

      需求四:和三亚女友通信(交换机+n*路由器)

    c,基于socket模块实现网络通信

    import socket
    
    # 创建服务端socket对象
    server = socket.socket()
    
    # 绑定IP和端口
    server.bind(('192.168.13.155',8000))
    
    # 后边可以等5个人
    server.listen(5)
    
    print('服务端准备开始接收客户端的连接')
    # 等待客户端来连接,如果没人来就傻傻的等待。
    # conn是客户端和服务端连接的对象(伞),服务端以后要通过该对象进行收发数据。
    # addr是客户端的地址信息。
    # #### 阻塞,只有有客户端进行连接,则获取客户端连接然后开始进行通信。
    conn,addr = server.accept()
    
    print('已经有人连接上了,客户端信息:',conn,addr)
    
    
    # 通过对象去获取(王晓东通过伞给我发送的消息)
    # 1024表示:服务端通过(伞)获取数据时,一次性最多拿1024字节。
    data = conn.recv(1024)
    print('已经有人发来消息了',data)
    
    
    # 服务端通过连接对象(伞)给客户端回复了一个消息。
    conn.send(b'stop')
    
    # 与客户端断开连接(放开那把伞)
    conn.close()
    
    # 关闭服务端的服务
    server.close()
    

     理解socket

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的借口就是全部让Socket去组织数据,以符合指定的协议.

    为什么要网络通信发送的是字节?而不是字符串?

  • 相关阅读:
    每日总结2021.9.14
    jar包下载mvn
    每日总结EL表达语言 JSTL标签
    每日学习总结之数据中台概述
    Server Tomcat v9.0 Server at localhost failed to start
    Server Tomcat v9.0 Server at localhost failed to start(2)
    链表 java
    MVC 中用JS跳转窗体Window.Location.href
    Oracle 关键字
    MVC 配置路由 反复走控制其中的action (int?)
  • 原文地址:https://www.cnblogs.com/y122988/p/9578736.html
Copyright © 2020-2023  润新知