//填充IP首部 
ipHeader.h_verlen=(4<<4 | sizeof(ipHeader)/sizeof(unsigned long)); 
ipHeader.tos=0; 
ipHeader.total_len=htons(sizeof(ipHeader)+sizeof(tcpHeader)); 
ipHeader.ident=1; 
ipHeader.frag_and_flags=0; 
ipHeader.ttl=128; 
ipHeader.proto=IPPROTO_TCP; 
ipHeader.checksum=0; 
ipHeader.sourceIP=inet_addr("本地地址"); 
ipHeader.destIP=inet_addr(argv[1]); 这是用C写的,ipHeader是一个IP头的数据结构,实在对C不是很熟悉
请问C里面的这段怎么改成C#,主要是htons()函数和inet_addr()不知道怎么改

解决方案 »

  1.   

    IP头和TCP头的格式不是我能够随便重定义的
    htons()函数是转换成网络格式  C#里面要处理吗
    inet_addr("本地地址"); 应该是转换成32位的IP地址吧  但是C#里面用的是IPAddress类型
      

  2.   

    如果是C的源代码,可以用C++/CLI封装到一个托管类里面做为一个静态函数,然后编译成
    DLL,在C#中直接添加引用后调用。