socket服务器和客户端的建立步骤。Python实现
来源:互联网 发布:加入snh48好吗 知乎 编辑:程序博客网 时间:2024/06/04 19:05
TCP-服务端
1、创建一个socket,用函数socket();
2、绑定IP地址、端口等信息到socket上,用函数bind();
3、开启监听,用函数listen();
4、接收客户端上来的连接,用函数accept();
5、收发数据,用函数send()和recv(),或者read()和write();
6、关闭网络连接;
7、关闭监听;
from socket import *from time import ctimeHOST = 'localhost'PORT = 21567BUFSIZ =1024ADDR = (HOST , PORT)tcpserSock = socket(AF_INET,SOCK_STREAM)#1 SOCK_STREAM 流式-forTCPtcpserSock.bind(ADDR)#2tcpserSock.listen(5)#3while True: print ('waiting for connection...') tcpCliSock, addr = tcpserSock.accept()#4 print ('...connected from:',addr) while True: data = tcpCliSock.recv(BUFSIZ)#5 if not data: break tcpCliSock.send('[%s]%s' %(ctime(),data)) tcpCliSock.close()#6tcpserSock.close()#7
TCP-客户端
1、创建一个socket,用函数socket();
2、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
3、设置要连接的对方的IP地址和端口等属性;
4、连接服务器,用函数connect();
5、收发数据,用函数send()和recv(),或者read()和write();
6、关闭网络连接;
from socket import *from time import ctimeHOST = '192.168.0.104'#目的IP地址PORT = 21567BUFSIZ = 1024ADDR = (HOST, PORT)tcpCliSock = socket(AF_INET,SOCK_STREAM)tcpCliSock.connect(ADDR)while True: data = raw_input('>') if not data: break tcpCliSock.send(data) data = tcpCliSock.recv(BUFSIZ) if not data: break print (data)tcpCliSock.close()
UDP-服务器
1、创建一个socket,用函数socket();
2、绑定IP地址、端口等信息到socket上,用函数bind();
3、循环接收数据,用函数recvfrom();
4、关闭网络连接;
#-*-coding:utf-8-*-from socket import *from time import ctimeHOST = ''PORT = 21567BUFSIZ = 1024ADDR = (HOST,PORT)udpSerSock = socket(AF_INET,SOCK_DGRAM)udpSerSock.bind(ADDR)while True: print ('waiting for message...') data,addr = udpSerSock.recvfrom(BUFSIZ) udpSerSock.sendto('[%s]%s' %(ctime(),data),addr) print ('...received from and returned to:',addr)udpSerSock.close()
UDP-客户端
1、创建一个socket,用函数socket();
2、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
3、设置对方的IP地址和端口等属性;
4、发送数据,用函数sendto();
5、关闭网络连接;
from socket import *HOST = 'localhost'PORT = 21567BUFSIZ = 1024 ADDR = (HOST,PORT)udpCliSock = socket(AF_INET,SOCK_DGRAM)while True: data = raw_input('>') if not data: break udpCliSock.sendto(data,ADDR) data,ADDR = udpCliSock.recvfrom(BUFSIZ) if not data: break print dataudpCliSock.close()
socket流程只能怪listen和accept哪个是带阻塞的,什么情况下阻塞
listen意思是监听:但是它不是一直在监听,accept才是;
理解:listen函数不会阻塞,它只是相当于把socket的属性更改为被动连接,可以接收其他进程的连接。listen侦听的过程并不是一直阻塞,直到有客户端请求连接才会返回,它只是设置好socket的属性之后就会返回。监听的过程实质由操作系统完成。但是accept会阻塞(也可以设置为非阻塞),如果listen的套接字对应的连接请求队列为空(没有客户端连接请求),它会一直阻塞等待。
- socket服务器和客户端的建立步骤。Python实现
- socket服务器和客户端的建立步骤
- python简单的socket 服务器和客户端
- 简单的python socket服务器和客户端
- TCP 阻塞模型下服务器和客户端的建立步骤
- TCP 阻塞模型下服务器和客户端的建立步骤
- python socket实现简单的(TCP/UDP)服务器/客户端
- python socket 实现服务器/客户端通信
- 简单实现python socket 服务器客户端
- python socket 创建tcp服务器和客户端
- java 通过 socket 实现 服务器和客户端的通信 TCP
- VC Socket 实现服务器和客户端的通讯
- Android Socket编程android端服务器和客户端的实现
- socket实现简单的echo应答服务器和客户端
- 利用socket实现服务器和客户端的远程桌面
- java网络编程----------Socket实现客户端和服务器的连接
- 简易socket客户端和多线程服务器实现
- 简单Socket实现客户端和服务器连接
- kafka web console监控软件的安装
- ARP监测工具Arpwatch
- Java CAS原理深度分析
- document.body.clientHeight 和 document.documentElement.clientHeight 的区别
- Assimp配置
- socket服务器和客户端的建立步骤。Python实现
- Java_String小结
- Linux环境配置相关
- 关于servlet监听器的笔记与案例
- 有用博客
- 什么是位、字节、字、KB、MB
- C# SharpMap的简单使用
- OKHttp源码解析二(复用连接池)
- BZOJ 1026 [SCOI2009]windy数 数位dp