zoukankan      html  css  js  c++  java
  • 【网络编程】socket编程

    socket概念

    socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递。 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外提供服务,如果 把一个公司比做一台电脑 ,那公司的总机号码就相当于ip地址, 每个员工的分机号就相当于端口, 你想找公司某个人,必须 先打电话到总机,然后再转分机 。

    建立一个socket必须至少有2端, 一个服务端,一个客户端, 服务端被动等待并接收请求,客户端主动发起请求, 连接建立之后,双方可以互发数据。 

    客户端:(示例)

    import socket
    
    client=socket.socket() #声明sockrt类型,同时生成socket链接对象
    client.connect(('localhost',6969))
    while True:
        msg=input('>>>').strip()
        if len(msg)==0:    #空字节不能发送
            continue
        client.send(msg.encode('utf-8'))
        data=client.recv(1024)
    
        print('recv:',data.decode())
    
    client.close()

    服务端:

    import socket
    
    server=socket.socket()
    server.bind(('localhost',6969))    #绑定要监听的端口
    
    server.listen()    #监听
    
    print('waiting..')
    conn, addr = server.accept()  # 等待
    #conn就是客户端连接过来,而在服务端为其生成的一个连接实例
    
    while True:
    
        # print(conn,addr)
        print('recving...')
    
        data=conn.recv(1024)
        print('recv:',data.decode())
        if not data:
            print('client has lost...')
            break
    
        conn.send(data.upper())
    
    server.close()
  • 相关阅读:
    <Android 基础(二十六)> 渐变色圆角Button
    Java 中父类怎么调用子类的方法?
    <Android 基础(二十五)> Frame Animation
    Java基础知识点
    HTTP请求流程(二)----Telnet模拟HTTP请求
    telnet远程登录协议
    HTTP协议详解
    STM32 SPI接口的NSS引脚
    TCP/IP
    以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
  • 原文地址:https://www.cnblogs.com/q1ang/p/9107569.html
Copyright © 2011-2022 走看看