浅谈自己理解的socket(2)
来源:互联网 发布:淘宝买大麻暗语 编辑:程序博客网 时间:2024/06/07 12:47
一、我们在启动服务器端之后,由于只有一个进程可以为客户端提供服务,当有多个客户端链接j进来的时候,服务器将无法为每个客户端提供服务。
我们解决的方法有以下一种办法:
1、进来一个客户端链接,启动一个子进程为其服务。
2、进来一个客户端链接,启动一个子线程为其服务。
3、只有一个主进程,就排队为客户端服务,即进来一个客户端,建立一个socket套接字,与该链接进行数据交换,直到该服务结束,关闭链接;当后续链接进来时,再一次建立socket套接字。
二、下面我们将给出上述第三种处理方式
1、服务器端代码
#TCP/IP的服务器端import socketimport os#IP and portserver_address = ('localhost', 6666)#create a socketserver_socket = socket.socket()#bind to the address and listen the connectionserver_socket.bind(server_address)server_socket.listen(5)while True: conn, addr = server_socket.accept() print('a new connection from', addr) while True: data = conn.recv(1024) if not data: break print('the length of received message is',len(data), 'bytes') #change all letters to uppercase conn.send(data.upper()) conn.close()server_socket.close()
解释:第二个while循环,为客户端提供数据交互,该循环结束后,关闭掉与客户端的链接
2、客户端代码
#TCP/IP的客户端import socketconn_address = ('localhost', 6666)# #create a socket# client_socket = socket.socket()for i in range(3): # create a socket client_socket = socket.socket() #connect to the server_socket client_socket.connect(conn_address) client_socket.send(b'I will become stronger and stronger') data = client_socket.recv(1024) print(data) client_socket.close()
三、关于的多进程与多线程的处理请关注后续的博客
阅读全文
0 0
- 浅谈自己理解的socket(2)
- 浅谈自己理解的socket(1)
- 浅谈自己理解的懒加载
- 浅谈自己对异步交互、同步交互的理解
- 自己对java里面的socket的一点理解
- 浅谈json,自己初认识json,写下自己对其概念的理解。
- 浅谈模拟java动态代理(自己的理解,里面代码是马士兵老师的代码)
- socket通信(自己的程序)
- 浅谈static的理解
- 浅谈线程的理解
- 浅谈SVD的理解
- 对Socket CAN的理解(2)——【Socket的原理及使用】
- 对Socket CAN的理解(2)——【Socket的原理及使用】 .
- 对Socket CAN的理解(2)——【Socket的原理及使用】
- 对Socket CAN的理解(2)——【Socket的原理及使用】
- 浅谈PHP的Socket模块
- 浅谈自己对构造函数、析构函数、复制构造函数的理解
- 浅谈自己对Java代理模式的理解--即为什么要用&怎么用
- 【Swift4.0】集合类型-Set
- 小学奥数思维训练题(二十)
- 简单的二级购物车(2)
- Visual Studio 2017 的重大功能回顾和针对 .NET 开发者的更新
- Android中Ijkplayer最简单的使用
- 浅谈自己理解的socket(2)
- Springboot教程六——项目信息
- hibernate数据类型之间的映射关系
- Android.mk
- 你真的了解Android Notification吗?
- 【Swift4.0】集合类型-Dictionary
- git subtree 拆库,提交,建立关联
- Python入门
- nginx