各位高手好,我是mfc的初学者,想要实现pc机之间基于某个协议的通信,由于之前没有相关的经验,而且时间不是太充裕,所以希望有高手能提供一些相关的代码,可以帮助我,多谢多谢!

解决方案 »

  1.   

    恩,是的,如果用socket来编,数据该如何打包呢?
      

  2.   

    用 TCP socket来做吧,自定义用户数据的头部。
      

  3.   


    struct databuff
    {
    int data_length;
    char data[长度];
    }每次先接收4个字节的长度,然后根据长度,接收发送的字符串。
      

  4.   


    如果你是用TCP或者UDP来传输的话,直接调用SOCKET相关的函数就可以实现发送,接收数据的功能了。除非你想自己再定义一个协议(用来标识数据包的开始,结束,长度之类的信息),否则的话不需要在前面加一个包头。
      

  5.   

    这个问题要二两块回答。
    首先你要从网络协议的哪一层开始进行协议构建,网络七层不用说了吧,如果你只需要应用层方面的支持,可以基于TCp/udp传输层,下面的事基本不管,直接用SOCKET收发即可,如果你说要做一个完整的网络协议,要从第二层硬件层开始,最后一层的网络介质层跟咱们软件无关,那么说数据链路层开始,并不代表你一定要搞定网卡驱动,而是要实现数据链路层相关协议:比如现在主流的PPP PPPoE 协议,从用户角度看,你如果不连接互联网,你可以不实现与互联网对接的PPP PPPOE等协议,而直接进行网络层。但无论怎么样你一定要尊守的底层硬件协议是以太协议,因为网卡的硬件地址是遵守这一协议,如果你想自己连这也开发了,那你得找个硬件工程师把你想做的物理层协议开发到网卡或相关网络设备上,然后开发自己的设备驱动。第二个问题怎么样开始,选择哪一平台开发。
    一般上讲windows可以从ndis开始,linux可以从filter层开始。然后实现你自己的相关网络层协议,现有的网络层常用协议有IP和ARP协议。ARP协议也可以看做数据链层协议。
    然后实现你自己的相关传输层协议TCP/UDP常用。最后实现你自己的应用层协议的接口(会话层)。最终就可以到达用户界面喽。这样讲只是一个大概流程,其间所涉及问题不能一一列举,不然就够一本书喽。