- 浏览: 1016301 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
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 connect
CXSocket 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 send
char 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 recv
XNET::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;
}
发表评论
-
NotePad++ - 安装和配置C/C++开发插件
2011-11-15 23:00 1846NotePad++ - 安装和配置C/C+ ... -
VC中使用ATL编写控件 【转】
2011-10-21 15:23 2145VC中使用ATL编写控件 作者:邵盛松 2010 ... -
在Windows环境下MongoDB搭建和简单操作【转】
2011-10-21 12:37 1000一,安装mongoDB 1,解 ... -
Mongodb在Windows下安装及配置【转】
2011-10-21 12:35 5911.下载mongodb的windows版本,有32位和64位版 ... -
一篇介绍VC开发OCX的文章[转]
2011-10-20 17:57 1931转自“http://www.cnblogs.com/genga ... -
使你的ActiveX控件执行时不弹出安全性提示 (转载)
2011-10-20 17:56 1214使你的ActiveX控件执行时不弹出安全性提示 2010-0 ... -
VC++ 的MFC 和ATL 及COM 是什么?
2011-10-20 01:12 1025一、什么是MFC 微软基础类(Micro ... -
使用ATL编写一个简单的COM服务器【转】
2011-10-20 01:10 902下载例子代码 本文的对象是COM编程 ... -
使用VC++6.0制作ASP服务器控件简介[转]
2011-10-20 01:10 707用ASP写网页的程序 员,一定对VBSript语句“Set ... -
基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql
2011-09-01 13:49 1575基于CentOS 5.4搭建nginx+php+sp ... -
解决mrtg的Use of uninitialized value in hash element at /usr/bin/indexmaker line 35
2011-09-01 13:41 2344mrtg的安装过程这里就不再阐述,随便搜索一下。使用ind ... -
用MRTG检测Linux网络性能
2011-09-01 10:49 918随着Linux应用的日益广泛,有大量的网络服务器使用Linux ... -
Linux安装配置maven3.0以及搭建nexus私服
2011-08-30 23:45 1672一、软件准备 1、apache-maven-3.0-b ... -
GraphicsMagick介绍及安装
2011-08-30 23:16 1567作者:Cocowool 来源:博客园 发布时 ... -
Makefile
2011-08-30 22:10 903CC = g++ CFLAG = -Wall -g -w ... -
高位字节优先 低位字节优先
2011-08-24 17:30 1218自第一台计算机诞生, ... -
C++方式的文件操作
2011-08-24 16:05 1852本文主要讨论C++标准I/O库,主要内容为控制台输入输出流 ... -
【JAVA实用工具】JNA-通过它调用C++的方法,比JNI方便很多访问网站需要代理,所以把它COPY出来备忘
2011-08-24 00:33 3218How To Get Started Using JN ... -
Jni中C++和Java的参数传递
2011-08-24 00:04 5166如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对 ... -
aaaaa
2011-08-24 00:04 1037如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对 ...
相关推荐
2. **多线程**:在网络游戏中,服务端需要同时处理多个玩家的请求。因此,多线程技术是必不可少的。Java的`Thread`类和`ExecutorService`接口提供了强大的线程管理能力,开发者可能会使用这些工具来创建和管理服务端...
3. **客户端与服务端**:在Socket通信中,客户端通常发起连接请求,而服务端则等待并响应这些请求。客户端代码通常包含创建Socket、连接到服务器、发送数据、接收数据和关闭连接等步骤;服务端则需要监听特定端口,...
对于Visual C++开发者,可能会选择使用C++编写的开源FTP服务器项目,如Win32 FTP Server或Apache MINA FTPServer。 2. **安装和配置**:下载并安装FTP服务器软件后,需要进行配置。这通常包括设置监听的IP地址和...
Netty框架的优势在于它可以提供高性能高可靠的数据传输处理能力,根基公开测试结果,Netty作为TCP服务端,在4核16G内存阿里云服务器的硬件环境下单节点可以做到10万+级别TCP客户端设备同时在线。 在Java开发中,...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...
WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...