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 ...
随机推荐
- 什么是nProtect?
nProtect是设计用于保护个人电脑终端不被病毒和黑客程序感染的新概念的基于网络的反黑客和反病毒的工具. 他帮助确保所有输入个人电脑终端的信息在网络上不落入黑客手中. 在最终用户在执行电子贸易时,可 ...
- JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架
spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...
- Palindrome Degree(CodeForces 7D)—— hash求回文
学了kmp之后又学了hash来搞字符串.这东西很巧妙,且听娓娓道来. 这题的题意是:一个字符串如果是回文的,那么k值加1,如果前一半的串也是回文,k值再加1,以此类推,算出其k值.打个比方abaaba ...
- centos与debian网卡
debian /etc/network/interfaces # This file describes the network interfaces available on your sys ...
- 队列(Java实现)
队列的特点是先进先出. 基于链表的队列 public class LinkedListQueue<Item> { private Node first; // 指向最早添加进队列的元素 p ...
- centernet 相关
1.下代码 git clone https://github.com/Duankaiwen/CenterNet.git 2.
- 0ctf-Wallbreaker Easy复现
补坑+1. 有预留的后门,并且给了phpinfo,因此可以从phpinfo中先搜集一波信息: 这里禁用了很多命令执行的函数,所以应该要bypass_disablefunction,先读一下flag在哪 ...
- MongoDB in Action (MongoDB 实战).pdf
http://www.open-open.com/doc/view/691d4d2232ce4b30b14c6b218fff4be8
- WebServer_简单例子
#-*-coding:utf-8-*- importwebimportjson urls=("/.*","index")app=web.application( ...
- Ubuntu防火墙常用命令
Ubuntu默认防火墙安装.启用.配置.端口.查看状态相关信息 最简单的一个操作: sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回 ...