socket传送文件格式的问题
在python3中socket传送文件只能传送‘bytes'类型,如下例子:
import socket client = socket.socket()
client.connect(("localhost",8808))
client.send(b"Hello world!") 在例子中“hello world"为字符串类型,所以要转换成”bytes"类型,所以前面加一个“b"就行了,
但是,如何将“Hello world"改成中文就就会出错,因为这种形式只能将存在于Ascii码编码内的字
符串和符号进行转换,当一个字符串不在Ascii码编码范围内例如中文,则用这种形式就会报错,所以
当出现中文字符串时,要用encode进行编码,编码后字符串会变成为字节类型(bytes),如下所示:
decode encode
bytes ------> str(unicode)------>bytes
这样之后,发送端就可以将信息以“bytes"类型发送,服务器接收到的也是编码后的二进制信息,要显
示中文必须要采用decode解码。所以,如何是中文要采用如下形式:
import socket client = socket.socket()
client.connect(("localhost",8808))
client.send("你好世界!".encode("utf-8"))
socket传送文件格式的问题的更多相关文章
- C#与C++通过socket传送结构体
C#服务端: using System; using System.Net.Sockets; using System.Net; using System.IO; using System.Diagn ...
- C语言sendto()函数-经socket传送数据以及recvfrom函数《转》
相关函数:send, sendmsg, recv, recvfrom, socket 头文件:#include <sys/types.h> #include <sys/socke ...
- Socket 传送文件
1.传送文本文件 1.1服务端 package com; import java.io.BufferedWriter; import java.io.DataInputStream; import j ...
- socket传送文件
一.文件传送步骤 我们要利用socket来实现下载一个文件,该如何操作呢? 服务端: 读取文件名 判断文件是否存在 检测文件大小(用于和客户端对比判断文件是否传送完毕) 发送文件大小给客户端 等待客户 ...
- java socket传送一个结构体给用C++编写的服务器解析的问题
另一端是Java写客户端程序,两者之间需要通信.c++/c接收和发送的都是结构体,而Java是直接发送的字节流或者byte 数组.解决方法:c++/c socket 在发送结构体的时候其实发送的也是字 ...
- qt下通过socket传送中文
zz 1.在main函数里我之前就加了一句QTextCodec::setCodecForTr( QTextCodec::codecForLocale() ); 现在再加一句QTextCodec::se ...
- socket传送二进制流的一些总结
第一次实质性的接触socket通信方面的工作,所以遇到的问题还真不少,写篇博客记录一下,提升下记忆. 需求是通过私有协议进行二进制数据的传输,必须保证数据包不能被丢失,所以选择tcp的socket进行 ...
- socket(一)
相关链接: http://my.oschina.net/u/1378445/blog/340206?p=2&temp=1469158886336#blog-comments-list http ...
- TCP通讯socket自定义协议的实现
转发(JAVA):http://blog.csdn.net/u010818425/article/details/53448817 一个简单的自定义通信协议(socket),http://blog.c ...
随机推荐
- AcWing:176. 装满的油箱(bfs + dijiskla思想)
有N个城市(编号0.1…N-1)和M条道路,构成一张无向图. 在每个城市里边都有一个加油站,不同的加油站的单位油价不一样. 现在你需要回答不超过100个问题,在每个问题中,请计算出一架油箱容量为C的车 ...
- 2017 ZSTU寒假排位赛 #6
题目链接:https://vjudge.net/contest/149212#overview. A题,水题,略过. B题,水题,读清题意即可. C题,数学题,如果把x表示成x=nb+m,则k=n/m ...
- [Java]简单计算下一段Java代码段运行了多少秒
long startTime = System.currentTimeMillis(); ...... long endTime = System.currentTimeMillis(); logge ...
- Hibernate3核心API-SessionFactory接口
Configuration对象根据当前的配置信息生成 SessionFactory 对象.SessionFactory 对象一旦构造完毕,即被赋予特定的配置信息(SessionFactory 对象中保 ...
- Javah提示未找到 ..的类
Javah相关错误,如下图所示:
- JVM调优小结
JVM调优浅谈 https://www.cnblogs.com/andy-zhou/p/5327288.html 1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类 ...
- [CDH] Redis: Remote Dictionary Server
基本概念 一.安装 Redis: Remote Dictionary Server 远程字典服务 使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种 ...
- php上传文件夹
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 功能介绍: 树形目录导航.您可以通 ...
- Linux系统管理_主题01 :初识Linux_1.6 用好帮助文档man
在 man 界面中,可以使用如下快捷键来进行操作: 上/下箭头 向上/下滚动一行 [Space] 向下翻一页 [Page Down] 向下翻一页 [Page Up] 向上翻一页 [ ...
- Vue和其他框架的区别
原文地址 React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 将注意力集 ...