当前位置:  技术问答>linux和unix

谁有一个用c的socket传送特殊格式数据包的例子?具体格式如下:

    来源: 互联网  发布时间:2015-07-14

    本文导语:  消息头的格式: Message Length 4 Integer 消息的总长度(字节) Command ID 4 Integer 命令ID Sequence Number 12 Integer 序列号 消息体的格式: Login Type 1 Integer 登录类型。1:SP向IDMS建立的连接,用                        ...

消息头的格式:
Message Length 4 Integer 消息的总长度(字节)
Command ID 4 Integer 命令ID
Sequence Number 12 Integer 序列号
消息体的格式:
Login Type 1 Integer 登录类型。1:SP向IDMS建立的连接,用
                                                  于发送命令
                                               2:IDMS向SP建立的连接,用
                                                  于发送命令
                                               3:SP与IDMS之间建立的测试
                                                  连接,用于跟踪测试其
                                                  它:保留
Login Name 16 Text 服务器端给客户端分配的登录名
Login Passowrd 16 Text 服务器端和Login Name对应的密码
Reserve 8 Text 保留,扩展用

哪位侠客能给做出来?万分感谢,或着给些这方面的资料,尤其是怎么定义数据,
怎么把消息组装起来,请多赐教!

|
Message Length 4 Integer 消息的总长度(字节)
Command ID 4 Integer 命令ID
Sequence Number 12 Integer 序列号
消息体的格式:
Login Type 4/*改成4字节吧,好操作*/ Integer 登录类型。1:SP向IDMS建立的连接,用
                                                  于发送命令
                                               2:IDMS向SP建立的连接,用
                                                  于发送命令
                                               3:SP与IDMS之间建立的测试
                                                  连接,用于跟踪测试其
                                                  它:保留
Login Name 16 Text 服务器端给客户端分配的登录名
Login Passowrd 16 Text 服务器端和Login Name对应的密码
Reserve 8 Text 保留,扩展用


struct data{
    int a;
    int b;
    char c[12];
    int d;
    char e[16];
    char f[16];
    char g[8];
};
/*send*/
struct data send;
memset((void*)&send, 0, sizeof(send));

send.a = htonl(sizeof(send));
send.b = htonl(id);
memcpy((void*)(send.c), seq, 12);
send.d = htonl(type);
strncpy(send.e, name, 15);
strncpy(send.f, pass, 15);
strncpy(send.g, msg, 7);

send(fd, (const void*)&send, sizeof(send), 0);


/*recv*/
u_char tmp[128];
int recv_len=0;
int reVal=0;
struct data recv;

memset((void*)tmp, 0, sizeof(tmp));
memset((void*)&recv, 0, sizeof(recv));
do{
    if((reVal = recv(fd, (void*)&tmp, sizeof(recv)-recv_len, 0)) == -1)
               /*不继续处理*/;
    recv_len += reVal;
}while(recv_len 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 哪位高手给个unix系统下C语言socket+fork()+select()的例子?
  • PHP异步调用socket小例子
  • 求助linux下socket多线程编程的例子(C语言写的)
  • 在编译有关socket的例子时老有这些错误,是什么一回事
  • UNIX环境高级编程里一个SOCKET编程的例子问题
  • socket问题求例子!!
  • 100分:~~请哪位大侠随便用java写一个socket传文件的例子,服务器和客户端写全哦!!~~
  • linux 下g++编译 书上的socket的例子出错,请帮忙看看?
  • 谁能给一个unix下用c写的服务器端socket例子,谢谢了,急啊
  • socket中经典例子talk,编译错误,请教原因
  • 真心求助:各位大哥能帖一个 socket 程序的例子吗?(要是多线程序的),分少了开帖再加!谢谢!
  • SCO UNix 的 c/c++ 编译器哪儿有? 带socket的例子哪儿有?
  • 给个很简单的例子,socket的!
  • 请教一个socket 问题,例子来源于unp31
  • 关于socket例子.
  • 哪位大虾有数据报Socket客户端例子的java源码?急……
  • 谁能给个 linux 下的 socket网络通信程序例子(C语言的)
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket问题求例子!! iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3