socket基础


python 网络编程基础:
1)什么叫做socket:
socket又叫做‘套接字’,应用程序通常通过‘套接字’向网络发出请求或者应答网络请求,使主机或者计算机上的进程之间可以通讯。
2)怎样获得socket:
我们可以用socket模块中的socket函数开得到套接字,sock=socket.socket(family[,type[,protocol]]),
family:套接字家族AF_NUIX,AF_INET;type:套接字类型可以分为面向连接的和不面向连接的sock_stream/sock_dgram;protocl:默认值为0。
3)sock对象的内建方法:
服务器端:
service.bind():绑定地址(主机名,端口号),在AF_INET中以(host,port)的形式表示地址。
service.listen(最大连接数量):开始监听,backlog指定在拒绝连接之前,操作系统可以设置最大连接数量
service.accept():接收TCP客户端连接,(阻塞式)等待连接的到来。
客户端:
client.connect():连接TCP服务器。一般address是(主机地址,端口号).
client.connect_ex():connect()的扩展版本,出错时返回出错码,不是抛出异常。
公共用途的套接字函数:
socket.rect(最大数据接收数量):接收TCP数据,数据以字符串的形式返回,可以指定最大数据接收数量。
socket.send()发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量
socket.sendall()完整发送TCP数据,完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。成功返回None,失败则抛出异常。
socket.recvform()接收UDP数据,与recv()类似,但返回值是(data,address)
socket.sendto()发送UDP数据,将数据发送到套接字,address是形式为(ipaddr,port)的元组
socket.close()关闭套接字
socket.getpeername():返回连接套接字的远程地址。
socket.getsockname():返回套接字地址。
s.setblocking(flag) 如果flag为0,则将套接字设为非阻塞模式,否则将套接字设为阻塞模式(默认值)。非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那么将引起socket.error异常。
s.makefile() 创建一个与该套接字相关连的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值