python_112_网络编程 Socket编程




实例1:客户端发小写英文,服务器端返回给客户端大写英文(仅支持一次接受发送)
服务器端:
#服务器端(先于客户端运行)
import socket
server=socket.socket()
server.bind(('localhost', 6969))#绑定要监听的端口,只能接受一个参数
server.listen()#监听 print('我要开始等电话了')
conn,addr=server.accept()#等电话打进来 conn:连接标记 addr:对方的地址
#conn就是客户端连过来而在服务器端为其生成的一个连接实例
print('conn:',conn)
print('addr:',addr)
print('电话来了') data=conn.recv(1024)#接受数据 数据大小最好<=8192 recv默认是阻塞的
print('recv',data)
conn.send(data.upper())#返回一个值 server.close()
客户端:
#客户端
import socket client=socket.socket()#声明协议(socket)类型,同时生成socket连接对象
client.connect(('localhost',6969))#连接,只能接受一个参数 client.send(b'hello world')#发送数据 注:python3中只能发byte类型,python2可以发字符串,byte(字节)类型
# 注:byte类型只能接受ascall码数据类型
# client.send('我要下载aaa片'.encode())#发送中文要这样写(英文也没问题)
data=client.recv(1024)#接受服务器端的返回,可以指定接受大小 这里我指定的是1024个字节
print('recv:',data)
# print('recv:',data.decode())#接受中文要这样写(英文也没问题) client.close()
实例2:重复接受与发送(linux系统上操作最合适)
服务器端:
import socket
import os
sever=socket.socket()
sever.bind(('localhost',6969))
sever.listen(5)#5可以更换别的数字,这里指的是可以挂起5个客户端连接(异步通信时可以懂得),默认写5个
print('我要开始等电话了') while True:
coon, addr = sever.accept()
print('coon:', coon)
print('addr:', addr) while True:
data=coon.recv(10240)
print('recv',data)
if not data:
print('client has lost')
break
# res = os.popen(data).read() # 获取执行结果,并执行命令(将socket模拟ssh客户端)
# coon.send(res)#将send替换为sendall,表示循环发送send
coon.send(data.upper()) sever.close()
客户端:
import socket
client=socket.socket()
client.connect(('localhost',6969))
while True:
msg=input('>>:').strip()#注意发送不了空的,所以要用if语句
if len(msg)==0:continue
client.send(msg.encode('utf-8'))
data=client.recv(1024)
print(data.decode()) client.close()
python_112_网络编程 Socket编程的更多相关文章
- python网络编程-socket编程
一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...
- Day8 - Python网络编程 Socket编程
Python之路,Day8 - Socket编程进阶 本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...
- 网络编程——socket编程
一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...
- Day10 Python网络编程 Socket编程
一.客户端/服务器架构 1.C/S架构,包括: 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务)[QQ,SSH,MySQL,FTP] 2.C/S架构与socket的关系: 我们学习soc ...
- Python的网络编程 Socket编程
Socket是进程间通信的一种方式,与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,网络上各种各样的服务大多都是基于Socket来完成通信的,要解决网络上两台主机间的通信问题,首先要唯 ...
- HUST-计算机网络实验-socket编程
随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...
- python网络编程socket编程(TCP、UDP客户端服务器)
摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...
- 网络编程----------SOCKET编程实现简单的TCP协议
首先我们须要大致了解TCP的几点知识: 1.TCP的特点:面向连接的可靠性传输 2.TCP的三次握手建立连接和四次挥手释放连接.但为什么TCP要三次握手建立连接呢? 答:由于两次握手无法保证可靠性.若 ...
- 网络编程 socket编程 - Asyncsocke
简单的聊天程序:http://blog.csdn.net/chang6520/article/details/7967662 iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 c ...
随机推荐
- C++多态性:虚函数的调用原理
多态性给我们带来了好处:多态使得我们可以通过基类的引用或指针来指明一个对象(包含其派生类的对象),当调用函数时可以自动判断调用的是哪个对象的函数. 一个函数说明为虚函数,表明在继承的类中重载这个函数时 ...
- E20180525-hm
sensitive adj. 敏感的; 感觉的; [仪] 灵敏的; 易受影响的; lookup v. 查找; 查表; speedy adj. 快的,迅速的; 敏捷的 marshal vt. 整理, ...
- TP5之查询那些事
1.使用 model 查询,查出的类型为 对象 $a 是一个对象,使用 $a->name 的方式来获取 对象里的属性 2.使用 db 查询,查询出的是 数组 $b 是一个数组,使用 $b['na ...
- 3DMAX 3场景制作
1 模型制作 2 UVW贴图展开 1 打开材质编辑器,给模型一个材质(以后应该以这个材质生成uvw展开,进而生成贴图,贴图绘制完毕后,再贴回这个材质中,就完成了给模型加贴图的操作) 2 在编辑面板中添 ...
- 自然语言处理(三)——PTB数据的batching方法
参考书 <TensorFlow:实战Google深度学习框架>(第2版) 从文本文件中读取数据,并按照下面介绍的方案将数据整理成batch. 方法是:先将整个文档切分成若干连续段落,再让b ...
- OFFICE 365 A1 Plus账号注册
OFFICE365 A1 Plus账号注册 Office2019与Office365专业增强版之间的区别: Office2019是一次性购买,不会在购买后接收功能更新,但会根据需要接收质量和安全修补程 ...
- C 语言实例 - 复数相加
C 语言实例 - 复数相加 C 语言实例 C 语言实例 使用结构体(struct)将两个复数相加. 我们把形如 a+bi(a,b均为实数)的数称为复数,其中 a 称为实部,b 称为虚部,i 称为虚数单 ...
- JTextArea设置滚动条
应将JTextArea置于JScrollPanel中 若要使只有垂直滚动条而没有水平滚动条,使用JTextArea.setLineWrap(true),自动换行. 以下摘自[url]http:// ...
- java数据结构----图
1.图:.在计算机程序设计中,图是最常用的数据结构之一.对于存储一般的数据问题,一般用不到图.但对于某些(特别是一些有趣的问题),图是必不可少的.图是一种与树有些相像的数据结构,从数学意义上来讲,树是 ...
- 相册选择头像或者拍照 上传头像以NSData 图片二进制格式 表单上传
一.点击头像图片 或者按钮 在相册选择照片返回img,网络上传头像要用data表单上传 (1)上传头像属性 // 图片二进制格式 表单上传 @property (nonatomic, strong) ...