2 hellocjavavb hellocjavavb 于 2014.09.15 16:52 提问

c++与java通信(socket TCP)c++用的默认的编码,java用的UTF-8 怎么解决中文乱码问题

c++代码如下,谁可以试着尝试一下,谢谢
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")
void main()
{
//创建套接字
WORD myVersionRequest;
WSADATA wsaData;
myVersionRequest=MAKEWORD(1,1);
int err;
err=WSAStartup(myVersionRequest,&wsaData);//协议库版本信息
if (!err)
{
printf("已打开套接字\n");
}
else
{
//进一步绑定套接字
printf("嵌套字未打开!");
return;
}
//1.服务端:构造监听SOCKET,流式SOCKET
SOCKET serSocket=socket(AF_INET,SOCK_STREAM,0);
//需要绑定的参数
SOCKADDR_IN addr;
addr.sin_family=AF_INET;
addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址
addr.sin_port=htons(6001);//绑定端口
bind(serSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR));//绑定完成
listen(serSocket,5);//其中第二个参数代表能够接收的最多的连接数
//////////////////////////////////////////////////////////////////////////
//开始进行监听
//////////////////////////////////////////////////////////////////////////
SOCKADDR_IN clientsocket;
int len=sizeof(SOCKADDR);
// while (1)
// {
SOCKET serConn=accept(serSocket,(SOCKADDR*)&clientsocket,&len);//如果这里不是accept而是conection的话。。就会不断的监听
char sendBuf[100];
sprintf(sendBuf,"welcome to 北京");//找对对应的IP并且将这行字打印到那里
//printf("%s",sendBuf);//打印出来显示正确
send(serConn,sendBuf,strlen(sendBuf)+1,0);
char receiveBuf[100];//接
recv(serConn,receiveBuf,strlen(receiveBuf)+1,0);
printf("%s\n",receiveBuf);
closesocket(serConn);//关闭
WSACleanup();//释放资源的操作
//}
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
解决网络通信中的中文乱码问题(Java)
编程中,中文就意为着麻烦,特别是网络通信中,可能会遇到中文乱码的问题,想要解决Java中文乱码的问题,首先说一下字符,字符集,编码的概念.字符:文字与符号的总称,包括文字,图形符号,数学符号等. 字符集:是一组抽象字符的集合,通常和一种具体的语言文字对应,该文字中所有的字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集,繁体字符集,日文字符集等. 字符编码:计算机中处理各种字符,需要将
Socket传中文乱码问题的解决
socket服务端和客户端编码方式不一致将有可出现中文乱码问题,因此两边设成一样的就可以了 socket服务端发送数据时设置编码方式 PrintWriter output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"),true); output.println("你好");
java socket通信时,中文字符乱码的一个解决方法
可以使用: in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8")); out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")); socket示例: import java
Java中socket传送中文乱码问题解决方法
在用socket传送中文的时候,经常会遇到乱码问题,令人头痛。解决方法其实很简单,客户端在接收时,对BufferedReader对象进行一些设置就OK了。代码如下: BufferedReader in = new BufferedReader(new InputStreamReader(s .getInputStream(),"GB2312"));
socket通信乱码问题
这个问题困扰我很久了,一直想办法都不知道怎么解决,后来通过参阅相关资料,终于解决了. 经验如下: socket接收端要设置成gbk编码
java socket通讯乱码问题的解决
使用socket通讯经常会遇到客户端、服务器端字符编码不一致的情况,如果传输的信息包含中文,这时我们可能就需要对传输的信息的按照指定的字符集进行解码或者编码 首先我们了解jdk api中的几个基本的概念 String类 String public String(byte[] bytes, String charsetName) th
关于c++与java中文乱码问题分析与解决
问题分析: 之所以会出现中文乱码问题,归根结底在于中文的编码与英文的编码方式存在差异。 在java内部是使用16bit的unicode编码(即utf-16)来表示字符串,无论英文还是中文都是2字节。 C/C++使用的是原始数据,ascii是一个字节,中文一般是GB2312编码,用2个字节表示一个汉字。 Jni内部是使用utf-8编码表示字符串的,utf-8是扁长的unicode,一般ascii是1字节,中文是3字节。
java与c语言之间的socket通信—java客户端c服务器端
做一个项目
Delphi和JAVA进行TCPIP通信(用UTF-8编码)例子
最近的项目(Delphi开发),需要经常和java语言开发的系统进行数据交互(Socket通信方式),数据编码约定采用UTF-8编码。 令我无语的是:JAVA系统那边反映说,Delphi发的数据他们收到是乱码,而我这边(Delphi7,ANSI)收到的数据将utf-8转码成ansi也是乱码。 因为不太熟悉java语言,还曾经怀疑是不是Delphi的utf-8编码和java语言的不一样。 最近学习了一下java的相关知识,写一个小程序来测试验证一下我曾经的怀疑。 事实证明,Delphi7的UTF-8编码和JAVA的UTF-8编码是一致的。
Socket通信中中文乱码的问题
1、Android客户端Socket socket = new Socket("192.168.1.130", 3000); OutputStream os = socket.getOutputStream(); os.write(("用户名").getBytes("GB2312")); os.close(); socket.close();这里在写入数据时,需要将写入的数据进行转码:os.writ