博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket
阅读量:5958 次
发布时间:2019-06-19

本文共 2254 字,大约阅读时间需要 7 分钟。

1.套接字分类:

基于文件类型的套接字家族:AF_UNIX

基于网络类型的套接字家族:AF_INET

2.套接字的流程:

 

socket()模块函数用法:

  客户端:

1 import socket 2 iphone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 3 iphone.connect(('192.168.16.47',8080)) 4 while True: 5     choice=input('>>:').strip() 6     if not choice:continue 7     iphone.send(choice.encode('utf-8')) 8     data=iphone.recv(1024) 9     print(data.decode("utf-8"))10 iphone.close()

  服务端:

1 import socket 2 iphone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 3 iphone.bind(('192.168.16.47',8080)) 4 iphone.listen(5) 5 print('Loading......') 6 while True:                         #循环等待 7     conn,addr=iphone.accept() 8     print('此次来电的线路是:',conn) 9     print('此次来电的号码是:',addr)10     while True:                     #循环通讯11         try:12             data=conn.recv(1024)13             if not data:break       #应对linux系统14             print('客服端发来的贺电:',data.decode("utf-8"))15             conn.send(data.upper())16         except ConnectionResetError:17             break18     #关闭19     conn.close()20 iphone.close()

函数:

1 import socket as s 2 #服务端套接字函数 3 s.bind(('10.10.10.10',8080))    #绑定(主机,端口)到套接字 4 s.listen()                       #开始TCP监听 5 s.accept()                       #被动接受TCP客户的连接,(阻塞式)等待连接的到来 6 #客户端套接字函数 7 s.connect()                      #主动初始化TCP服务器连接 8 s.connect_ex()                   #connect()函数的扩展版本,出错时间时返回错码,而不是抛出异常 9 #公共用途的套接字函数10 s.recv()                         #接受TCP数据11 s.send()                         #发送TCP数据(send在待发送数据量大于己端缓存区剩余空间时,数据丢失,不会发完)12 s.sendall()                      #发送完成的TCP数据(本质就是循环调用send,sendall在待发送数据量大于己端缓存区剩余空间时,数据不丢失,循环调用sned直到发完)13 s.recvfrom()                     #接收UDP数据14 s.sendto()                       #发送UDP数据15 s.getpeername()                  #连接到当前套接字的远端地址16 s.getsockname()                  #当前套接字的地址17 s.getsockopt()                   #返回指定套接字的参数18 s.setsockopt()                   #设置指定套接字的参数19 s.close()                        #关闭套接字20 #面向锁的套接字方法21 s.setblocking()                  #设置套接字的阻塞与非阻塞模式22 s.settimeout()                   #设置阻塞套接字操作的超时时间23 s.gettimeout()                   #得到阻塞套接字操作的超时时间24 #面向文件的套接字的函数25 s.fileno()                       #套接字的文件描述符26 s.makefile()                     #创建一个与该套接字相关的文件

 

转载于:https://www.cnblogs.com/gz369521/p/6802755.html

你可能感兴趣的文章
RedHat 设置IP、网关、DNS
查看>>
MYSQL 主从复制读写分离实现
查看>>
linux更改语言
查看>>
centos7 修改mac地址
查看>>
<script>标签的加载解析执行
查看>>
恢复rm删除的文件(ext3
查看>>
账户注销完自动登录账户,并且不需要再点击屏幕的账户头像
查看>>
【Interface&navigation】按钮(29)
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>
Server-01 How to Find the Remote Desktop Port
查看>>
Java--接口、抽象与继承
查看>>
通过IP判断登录地址
查看>>
Oracle闪回技术
查看>>
利用单壁路由实现vlan间路由
查看>>
hello world
查看>>
CentOS 7 配置yum本地base源和阿里云epel源
查看>>
python 学习导图
查看>>
生成树
查看>>
(MYSQL) Unknown table 'a' in MULTI DELETE的解决办法
查看>>
作为一个程序员必备的素质
查看>>