zoukankan      html  css  js  c++  java
  • 网络编程之socket(TCP,UDP)

    socket层

    结构

    tcp协议和udp协议

    协议

    1)Socket服务器编程

    主要包括下面的几步:
    

    1.打开socket

    2.绑定到一个地址和端口

    3.侦听进来的连接

    4.接受连接

    5.读写数据

    (2)Socket客户端编程

    主要包括下面的几步:
    

    1.打开socket

    2.连接到一个地址和端口

    3.读写数据

    3. Socket类型

    Socket从类型上分,可以有以下几种:
    socket类型 适用范围 说明
    socket.AF_UNIX 只能够用于单一的Unix系统进程间通信 不能在不同主机之间通信
    socket.AF_INET 服务器之间网络通信 目前常用的就是这种
    socket.AF_INET6 IPv6 由于IPv6未推广,也少用

    4.Socket函数

    1
    2
    3
    4
    要记住常用的就可以,即通常会在Server端和Client端中编程会用到的,可以见下面的例子。

    5.Socket例子--TCP

        ###Server端:
    
    import socket
    sk = socket.socket()
    sk.bind(('127.0.0.1',8898))  #把地址绑定到套接字
    sk.listen()          #监听链接
    conn,addr = sk.accept() #接受客户端链接
    ret = conn.recv(1024)  #接收客户端信息
    print(ret)       #打印客户端信息
    conn.send(b'hi')        #向客户端发送信息
    conn.close()       #关闭客户端套接字
    sk.close()        #关闭服务器套接字(可选)
    
         ###Client端
    
    import socket
    sk = socket.socket()           # 创建客户套接字
    sk.connect(('127.0.0.1',8898))    # 尝试连接服务器
    sk.send(b'hello!')
    ret = sk.recv(1024)         # 对话(发送/接收)
    print(ret)
    sk.close()            # 关闭客户套接字
    

    5.Socket例子--UDP

        ###Server端:
    
    import socket
    udp_sk = socket.socket(type=socket.SOCK_DGRAM)   #创建一个服务器的套接字
    udp_sk.bind(('127.0.0.1',9000))        #绑定服务器套接字
    msg,addr = udp_sk.recvfrom(1024)
    print(msg)
    udp_sk.sendto(b'hi',addr)                 # 对话(接收与发送)
    udp_sk.close()                         # 关闭服务器套接字
    
         ###Client端
    
    import socket
    ip_port=('127.0.0.1',9000)
    udp_sk=socket.socket(type=socket.SOCK_DGRAM)
    udp_sk.sendto(b'hello',ip_port)
    back_msg,addr=udp_sk.recvfrom(1024)
    print(back_msg.decode('utf-8'),addr)
    
  • 相关阅读:
    poj-3580-SuperMemo-splay
    JS 添加到事件的多个对象
    1.9 效率高,安排约会
    我展示了视频采集前端vfe和camera,decode等交互驱动的体系结构
    2013年7月27日杂记
    深入JS系列学习4
    深入JS系列学习3
    深入JS系列学习2
    高质量JavaScript代码书写基本要点学习
    给硬件复兴把脉 硬件创新最有机会的十个方向
  • 原文地址:https://www.cnblogs.com/plusUltra/p/10517568.html
Copyright © 2011-2022 走看看