import socket模块二
---恢复内容开始---
优化两个小脚本实现不间断聊天:
server.py:
import socket
sk = socket.socket() # 创建socket
addess = ('127.0.0.1', 8000)
sk.bind(addess) # 创建被连接的IP与端口号
sk.listen(3) # 客户端连接人数
while 1:
conn, add = sk.accept()
print('有客户端连接:', add)
while 1:
try: # 异常处理
data = conn.recv(1024) # 接收
except Exception: # 出现异常就重新等待客户端的连接
break
print(str(data, 'utf8'))
if not data: # 如果接收的值为空,就重新等待客户端连接
break
inp = input('>>>:') # 输入信息
conn.send(bytes(inp, 'utf8')) # 发送
conn.close()
client.py:
import socket
sk = socket.socket() # 创建 socket
addess = ('127.0.0.1', 8000) # IP地址与端口号
sk.connect(addess) # 连接服务器端
while True:
inp = input('>>>:') # 用户如果输入exit,那么与服务器端的聊天就结束
if inp == 'exit':
break
sk.send(bytes(inp, 'utf8')) # 发送
data = sk.recv(1024) # 接收
print(str(data, 'utf8')) # 解码打印
sk.close()
---恢复内容结束---
import socket模块二的更多相关文章
- import socket模块
编写两个小脚本实现聊天功能0.1: 脚本一,服务器端:server.py import socket # 调用模块 sk = socket.socket() # 创建socket addess = ( ...
- socket编程--socket模块介绍
socket也称作'套接字,用于描述IP地址和端口,是一个通信的终点. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写] ...
- 第五十五节,IO多路复用select模块加socket模块,伪多线并发
IO多路复用select模块加socket模块,伪多线并发,并不是真正的多线程并发,实际通过循环等待还是一个一个处理的 IO多路复用,lo就是文件或数据的输入输出,IO多路复用就是可以多用户操作 IO ...
- 第五十三节,socket模块介绍,socket单线程通讯
socket单线程通讯,只能单线程通讯,不能并发 socket是基于(TCP.UDP.IP)的通讯.也叫做套接字 通讯过程由服务端的socket处理信息发送,由客户端的socket处理信息接收. so ...
- Python套接字编程(1)——socket模块与套接字编程
在Python网络编程系列,我们主要学习以下内容: 1. socket模块与基本套接字编程 2. socket模块的其他网络编程功能 3. SocketServer模块与简单并发服务器 4. 异步编程 ...
- python基础===socket模块的讲解(转)
一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web ...
- python——socket模块与列表映射
从socket模块学习中的一段奇怪代码说起 前言:在学习python标准库中的Socket模块中,发现了一段奇怪的代码. import socket def get_constants(prefix) ...
- socket()模块和套接字对象的内建方法
一.socket()模块函数 要使用socket.socket()函数来创建套接字,其语法如下: socket(socket_family,socket_type,protocol=0) 如上所述,s ...
- python 基础之第十二天(re正则,socket模块)
In [14]: 'hello-wold.tar.gz'.split('.') Out[14]: ['hello-wold', 'tar', 'gz'] In [15]: import re In [ ...
随机推荐
- Servlet - Servlet相关
1. 概念 Servlet是指任何实现了Servlet接口的类, Servlet运行于支持Java的应用服务器中, Servlet可以响应任何类型的请求, 但大多数情况下, Servlet只用来扩展基 ...
- Springboot 上传文件
@PostMapping("/upload")//springboot可以直接扫描resource下的static文件夹下的静态文件 public String upload(@R ...
- hive的行列互转
行转列 多行转多列 数据表 row2col col1 col2 col3 a c 1 a d 2 a e 3 b c 4 b d 5 b e 6 现在要将其转化为: col1 c d e a 1 2 ...
- NX二次开发-UFUN初始化UF_initialize
在调用UFUN函数时必须加Uf.h头文件,代码开头和结尾加UF_initialize和UF_terminate NX9+VS2012 #include <uf.h> #include &l ...
- Scrapy的初体验
上一节安装了python2和python3的开发环境 首先第一步:进入开发环境,workon article_spider 进入这个环境: 安装Scrapy,在安装的过程中出现了一些错误:通常这些错误 ...
- Comet OJ - 2019 六一欢乐赛
传送门 #A: 思路:等差数列求和,看成俩次1+2+…+ n,多加的n减去,所以 ans = n*(n+1) - n. AC代码: #include<iostream> #include& ...
- java 判断int类型为空
int id = 10; if("0".equals(String.valueOf(id)) || "null".equals(String.valueOf(i ...
- python 17 异常
自 http://www.cnblogs.com/BeginMan/p/3171445.html 一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发 ...
- java 迷你DVD管理器
1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...
- 启动 AXD 配置开发板
1. 启动 AXD 先启动 DragonICE Server 程序. 按如下步聚启动 AXD: 开始>所有程序>ARM Developer Suite v1.2>AXD De ...