首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

tcp/ip怎么解析发送过来的数据包

2012-01-16 
tcp/ip如何解析发送过来的数据包?发送过来的是基于tcp/ip的一些数据包,如何解析这个包呢?数据包发送过来的

tcp/ip如何解析发送过来的数据包?
发送过来的是基于tcp/ip的一些数据包,如何解析这个包呢?数据包发送过来的主要是字符串或者数字,是标准的tcp/ip包格式。感觉socket定义得比较死,实现不了我要的功能,请问各位怎么做?


[解决办法]
什么意思?你是要解析TCP/IP的报头呢?还是只解析包里面的内容(你所说的字符串或数字)?如果要解析TCP/IP的报头,那么需要用原始套接字。
不明白你说的socket定义的比较死是什么意思?
如果你想让包里的内容有特殊的格式,那么你可以在TCP/IP之上再定义一层你自己的封装格式的,也就是定义一个属于你自己的应用层的封装格式,只要通信的两端都遵循这个封装格式就可以了。
[解决办法]
倒,发错地方了。
[解决办法]
将你要发送的内容定义成如下形式的结构体:
struct Content
{
int i;
long j;
char str[100];
};
//定义一个结构体变量
struct Content MyContent;

//将你要发送的内容填写到MyContent变量中
//MyContent.i=...
//strcpy(MyContent.str,...)

发送数据包(即MyContent结构体)

send(s,(char*)&MyContent,sizeof(struct Content),0);
//..错误处理机制

在接收端要定义一个相同的struct Content结构体。

recv(...)数据到一个buf中之后,
int ii = (struct Content*)buf-> i;
long jj = (struct Content*)buf-> j;
char tmp[100];
strcpy(tmp,(struct Content*)buf-> str);
//就可以解析出你的内容了

以上只提供一个思路,具体的结构根据自己的需要设计吧 。

热点排行