python socket基本过程之二(server)
来源:互联网 发布:沥青库存数据 编辑:程序博客网 时间:2024/05/22 10:55
Python 3 Socket Server
所有的注释都写在了代码片段中,放在此处,以作记录。
和上一篇client稍有不同,使用多线程进行收发数据。可以考虑将此用于GUI程序…..
#! _*_ coding:utf-8 _*_'''我将要写一个标准的socket 服务端程序,书写整个流程Author:vincent'''import socketimport sysimport threadingprint("hello world 你好世界")# 第一步:创建socket'''Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信)Type:套接字类型,可以是 SOCKET_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCKET_DGRAM(数据报套接字,主要用于 UDP 协议)'''try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)except socket.error as msg: print("Socket创建失败,失败代码是:" + str(msg[0]) + "失败的信息是:" + msg[1]) sys.exit()print("socket 创建成功!")# 第二步:绑定socket'''函数 bind 可以用来将 socket 绑定到特定的地址和端口上,它需要一个 sockaddr_in 结构作为参数'''host = ''port = 8088try: s.bind((host, port))except socket.error as msg: print("Socket绑定失败,失败代码是:" + str(msg[0]) + "失败的信息是:" + msg[1]) sys.exit()print("socket 成功的绑定了!")# 第三步:监听连接'''函数 listen 可以将 socket 置于监听模式:该函数带有一个参数称为 backlog,用来控制连接的个数。如果设为 10,那么有 10 个连接正在等待处理,此时第 11 个请求过来时将会被拒绝。'''s.listen(10)print("socket 正在监听连接")# 第四步:接收客户端连接def client_thread(conn): conn.sendall("欢迎登陆服务器!!".encode()) while True: # 第五步:接收发送数据,将收到的数据返回 data = conn.recv(4096) print("接收到的数据:" + data.decode()) if not data: break conn.sendall('OK...'.encode() + data) # 第六步:关闭tcp连接,关闭socket conn.close() s.close()# 主线程进行接收客户端连接操作while True: conn, addr = s.accept() print("客户端连接:" + addr[0] + ":" + str(addr[1])) ct = threading.Thread(client_thread(conn)) # ct.daemon() ct.start()
0 0
- python socket基本过程之二(server)
- python socket基本过程之一(client)
- python之路 socket、socket server
- Python socket编程之(二):socket的选项设置
- Python学习之基本数据类型(二)
- python异步socket编程之二
- [代码笔记] python 之socket编程(二)
- Python网络通信之socket模块(二)socket模块的方法与属性
- python一些基本知识点之列表(二)
- SQL Server 数据库的整理优化的基本过程(二)
- Python系列之二_Python基本语法
- mne-python学习之二 基本数据处理
- python socket server 并发(转)
- python server简单入门(socket)
- python socket-server-client
- python socket server端
- socket-tcp-server python
- python---基本socket编写
- Visual Studio中监视数组
- 一个lua版的zset数据结构实现
- c/c++内存管理
- 阻塞和非阻塞的区别
- SpringjdbcTempete的配置文件
- python socket基本过程之二(server)
- mybatis字段取别名
- JAVA中集合解析篇二 HashMap解析
- yii2授权之ACF
- cocos2d-x经验分享2-取按键按下
- [leetcode]80. Remove Duplicates from Sorted Array II
- 机器学习-回归模型-欠拟合和过拟合
- cocos2d-x经验分享3-使用HTTP协议 客户端与服务端
- iOS基础笔试题集锦一