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 进行了 区分.

 

posted @ 2018-11-23 20:30  eahy  阅读(209)  评论(0编辑  收藏  举报