美文网首页
python网络编程基础

python网络编程基础

作者: Dxes | 来源:发表于2019-11-29 23:22 被阅读0次
    1.socket编程

    socket又叫套接字
    socket编程其实就是用代码来实现进行网络通讯的两个端;套接字就是实现通信的两个程序
    实现通信的两个端分为服务器和客户端两种

    python通过socket模块来提供socket编程相关的类和方法;其中socket类就是套接字对应的类

    2.服务器端的实现

    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对应的字符串
    端口:区分同一台计算机中不同的服务(程序):
    赋整数,值的范围是0-65535,其中0~1024属于著名了端口,不能随便使用
    同一时间一个端口只能对应一个服务

    服务器练习
    server= socket()
    
    sever.bind(("10.7.156.64", 10012))
    
    # 3)开始监听(等电话)
    sever.listen(512)
    
    # 4)保证服务器一直运行
    while True:
        print("开始监听……")
        # 接收客户端请求(接电话),返回为这个客户端创建的独立的套接字对象(分机)和客户端的地址
        # 当程序运行到这行代码的啥时候会停下来,知道有请求为止
        connect, address = sever.accept()
        print(connect, type(connect))
        print(address)
    
        # 6)接收消息(听别人说话)
        # recv(一次性能够接收的数据的大小)   - 返回接收到的数据,数据类型是二进制
        recv_data = connect.recv(1024)
        print(recv_data.decode(encoding='utf-8'))
    
        # 7)发送消息(说话给别人听)
        # send(需要发送的数据)
        connect.send('HTTP/1.1 200 OK\r\n\r\n你好!'.encode())
    
        # 8)关闭连接(挂电话)
        connect.close()
    
    客户端练习
    from socket import socket
    
    # 1.客户端套接字
    # 1)创建套接字对象(买电话)
    client = socket()
    
    # 2)连接服务器(拨号)
    client.connect(('10.7.156.64',10011))
    
    # 3)发送消息哦
    client.send('服务器你好!'.encode())
    
    # 4)接收消息
    re_data = client.recv(1024)
    print(re_data.decode(encoding = 'utf-8'))
    
    
    # 关闭连接
    client.close()
    

    相关文章

      网友评论

          本文标题:python网络编程基础

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