MINA服务端与C++客户端通讯(2)
来源:互联网 发布:2015网络剧 编辑:程序博客网 时间:2024/05/17 02:39
Java与C++通讯还有编码转码的问题存在,假设通讯编码采用UTF-8
C++客户端发送时需要转码成UTF-8编码,接收服务端应答消息后再转回Unicode或者GBK编码
下面给出完成的C++客户端通讯示例:
void Transcoding(LPCTSTR src, UINT srcCode, string& dest, UINT destCode) { int len = MultiByteToWideChar(srcCode, 0, src, -1, NULL, 0); WCHAR* srcTemp = new WCHAR[len]; MultiByteToWideChar(srcCode, 0, src, -1, srcTemp, len); len = WideCharToMultiByte(destCode, 0, srcTemp, -1, NULL, 0, NULL, NULL); char* destTemp = new char[len]; WideCharToMultiByte(destCode, 0, srcTemp, -1, destTemp, len, NULL, NULL); dest = destTemp; delete []srcTemp; delete []destTemp; }int _tmain(int argc, _TCHAR* argv[]){// client connectCXSocket client;client.initWinSocket();client.setAddress("127.0.0.1");client.setPort(1234);client.setProtoType(TCP);int ret = client.connect();if(ret < 0){getchar();return 0;}// 加通讯协议头demo// client sendchar send[] = {"CXSocket 第一个测试用例."};string utf8;Transcoding(send, CP_ACP, utf8, CP_UTF8);XNET::TPacketHeader sendHeader;sendHeader.m_HeaderSig = 0xABCD;swap_2(sendHeader.m_HeaderSig);sendHeader.m_Length = (int)utf8.length();swap_4(sendHeader.m_Length);char buffer[1024] = {0};memcpy(buffer, &sendHeader, XNET::TCP_HEADLEN);memcpy(&buffer[XNET::TCP_HEADLEN], utf8.c_str(), utf8.length());client.sendBuf(buffer, (int)(XNET::TCP_HEADLEN + utf8.length()));// client recvXNET::TPacketHeader recvHeader;client.receiveBuf(&recvHeader, XNET::TCP_HEADLEN);swap_2(recvHeader.m_HeaderSig);swap_4(recvHeader.m_Length);char* recv = new char[recvHeader.m_Length + 1];memset(recv, 0, recvHeader.m_Length + 1);client.receiveBuf(recv, recvHeader.m_Length);string ansi;Transcoding(recv, CP_UTF8, ansi, CP_ACP);client.close();client.uninitWinSocket();getchar();return 0;}
CXSocket类下载地址:http://code.google.com/p/x-net/
MINA服务端下载地址:http://download.csdn.net/source/3418326
- MINA服务端与C++客户端通讯 2
- MINA服务端与C++客户端通讯(2)
- MINA服务端与C++客户端通讯(2)
- MINA服务端与C++客户端通讯(2)
- MINA服务端与C++客户端通讯(1)
- MINA服务端与C++客户端通讯(1)
- MINA服务端与C++客户端通讯(1)
- MINA服务端与C++客户端通讯 1
- mina服务端与c++客户端通信2
- Mina 简单案例(客户端与服务端)
- Mina学习(一):mina实现简单服务端与客户端
- 使用Mina框架开发 QQ Android 客户端(2) 客户端与服务端的通信
- android 客户端与服务端通讯
- Linux C 服务端同时与多个客户端进行通讯
- mina服务端与c++客户端通信1
- MINA客户端与服务端通信实例
- mina框架客户端与服务端+java+maven
- nio/mina(四)客户端socket与mina服务端通信
- 中国谚语日文对照
- 一个简单的C#多线程间同步的例子
- 关于分页 HTML 代码中的 Js 函数指定问题( 编号:20110705A0847 )
- 动态创建CStatic
- C语言函数
- MINA服务端与C++客户端通讯(2)
- Report 开发-简单报表
- 珈伟工作项目总结(引言)
- C语言的那些小秘密之函数指针
- VB6编程实现XP风格
- 排序题
- 工作项目总结(一)之数据库操作
- 卡特兰数 Catalan数
- jbpm4.4表结构