• python-socket编程入门


    1.   tcp udp socket编程注意根据二者的有无连接对比.

    注意: 以下的操作 存在顺序,显然要先bind,listen

    TCP   server

    (1)新建socket对象 s

    s=socket.socket()

    绑定地址,设置可接受的连接数量

    s.bind( ('xxx.xxx.xxx.xxx',xxxx) )    #ip地址和端口号

    s.listen(5)

    (3)获得一个客户端连接

    Conn,address = s.accept()

     Conn是该链接的套接字,address ip:port

    可以进行send or receive操作了

    UDP server

    tcp ,减去 s.listen coon,addr =s.accept()

    TCP client

    新建socket 实例 s=socket.socket() s.bind()///客户端也可以绑定端口,一般不推荐

    连接到服务器   s.connet((‘ip’,port))

    Udp server, 不需要s.connet((‘ip’,port))

    000000000000000000000000000000000000000000000000000000

    具体的 发送  接收

    Send() sendto(多加地址), Sendto(bytes,address)

    Recv   recvfrom(多返回addr)

    均返回bytes类型的datadata, addr = s.recvfrom(1024)

    注意bytes strings 的类型转换:

    字符编码:ascII, 不同的字符 对于 不同的asc .

    Unicode也是一种码,两个byte 表示一个字符.

    Utf-8 编码:节省空间:常用的英文字母被编码成1个字节,汉字通常是3个字节

    内存中用unicode, 网络或者硬盘里 utf-8 编码

    用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件   

    同理.  注意:是在py3

    Python3中的str,在内存里为 unicode编码, 一个字符---多个byte

    根据以上规则, 网络传输 或者存在硬盘上 则要编成其他类型的码.

    比如: ‘abc’.encode(‘ascii’)   编为ASCII 保存起来

    Encode ,decode

    cs.send('byebye')

    ra=cs.recv(512)

    cs.close()

    注意py3 bytesstrings 进行了 区分.

  • 相关阅读:
    子网划分
    数据报分片
    CRC校验
    内部网关协议RIP与OSPF的特点、区别
    简述协议与服务的区别、关系
    算法思想
    上机实验题7--求解装载问题
    上机实验题6--求最长单调递增子序列
    python进程和线程
    python序列化操作
  • 原文地址:https://www.cnblogs.com/zyhe/p/10009607.html
Copyright © 2020-2023  润新知