请各位 帮忙看一下 为什么我的sendto 总是返回-1 各参数值都是对的啊.nRect= sendto( sock, szSendBuf, sizeof(tag_ipHeader) + sizeof(tag_tcpHeader), 0, (struct sockaddr*)&tag_add_in, sizeof(tag_add_in) );
解决方案 »
- vc编的dll在vb中怎么用 !和vb工程调用vb的dll一样吗? 急!!!!!!!!!!!!!!!!!!!!!!!???
- CreateFileMapping/OpenFileMapping/MapViewOfFile代码求助
- 请高手指点:利用OpenGL实现类似于极品飞车中沿道路前进的动画效果!!!!!!!
- 高分求购《COM技术内幕--微软组件对象模型》一书的CD中的源代码
- 线程取消问题.
- 高分求救文件绑定问题!
- 改变屏幕分辨率的代码
- 网络问题,急!急!急!
- 问问大家使用的Wise的版本是多少?从哪里下载的?有注册机吗?
- ********如何理解 CRITICAL_SECTION?(UP OR GZ 都有分)!
- 求一个类
- 删除某一个目录(比如C:\)下所有的空文件夹
tag_add_in.sin_family = AF_INET;
tag_add_in.sin_port = htons(1024); //端口号
tag_add_in.sin_addr.S_un.S_addr = inet_addr("192.168.138.161"); //IP地址 //填充IP首部
tag_ipHeader.h_verlen = ( 4 << 4 | sizeof(tag_ipHeader) / sizeof(unsigned long) );
tag_ipHeader.total_len = htons( sizeof(tag_ipHeader) + sizeof(tag_tcpHeader) );
tag_ipHeader.ident = 1;
tag_ipHeader.frag_and_flags = 0;
tag_ipHeader.ttl = 128;
tag_ipHeader.proto = IPPROTO_TCP;
tag_ipHeader.checksum = 0;
tag_ipHeader.sourceIP = inet_addr("192.168.138.160"); //本地IP地址
tag_ipHeader.destIP = inet_addr("192.168.138.161"); //填充TCP首部
tag_tcpHeader.th_dport = htons(1024);
tag_tcpHeader.th_sport = htons( SOURCE_PORT ); //源端口号
tag_tcpHeader.th_seq = htonl( 0x12345678 );
tag_tcpHeader.th_ack = 0;
tag_tcpHeader.th_lenres = ( sizeof(tag_tcpHeader) / 4 << 4 | 0 );
tag_tcpHeader.th_flag = 2; //修改这里来实现不同的标志位探测,2是SYN,1是FIN,16是ACK探测等等
tag_tcpHeader.th_win = htons( 512 );
tag_tcpHeader.th_urp = 0;
tag_tcpHeader.th_sum = 0; tag_psdHeader.saddr = tag_ipHeader.sourceIP;
tag_psdHeader.daddr = tag_ipHeader.destIP;
tag_psdHeader.mbz = 0;
tag_psdHeader.ptcl = IPPROTO_TCP;
tag_psdHeader.tcpl = htons( sizeof(tag_tcpHeader) );
你的Socket连接成功建立了么
{
AfxMessageBox("WSAStartup Error!");
}
if (( sock = WSASocket( AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED )) == INVALID_SOCKET)
{
AfxMessageBox("Socket Setup Error!");
} if ( setsockopt( sock, IPPROTO_IP, IP_HDRINCL, (char*) & bflag, sizeof( bflag )) == SOCKET_ERROR )
{
AfxMessageBox("setsockopt IP_HDRINCL error!");
} nTimeOver = 1000; if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char*) & nTimeOver, sizeof(nTimeOver)) == SOCKET_ERROR)
{
AfxMessageBox("setsockopt SO_SNDTIMEO error!");
} tag_add_in.sin_family = AF_INET;
tag_add_in.sin_port = htons(1024); //端口号
tag_add_in.sin_addr.S_un.S_addr = inet_addr("192.168.138.161"); //IP地址 //填充IP首部
tag_ipHeader.h_verlen = ( 4 << 4 | sizeof(tag_ipHeader) / sizeof(unsigned long) );
tag_ipHeader.total_len = htons( sizeof(tag_ipHeader) + sizeof(tag_tcpHeader) );
tag_ipHeader.ident = 1;
tag_ipHeader.frag_and_flags = 0;
tag_ipHeader.ttl = 128;
tag_ipHeader.proto = IPPROTO_TCP;
tag_ipHeader.checksum = 0;
tag_ipHeader.sourceIP = inet_addr("192.168.138.160"); //本地IP地址
tag_ipHeader.destIP = inet_addr("192.168.138.161"); //填充TCP首部
tag_tcpHeader.th_dport = htons(1024);
tag_tcpHeader.th_sport = htons( SOURCE_PORT ); //源端口号
tag_tcpHeader.th_seq = htonl( 0x12345678 );
tag_tcpHeader.th_ack = 0;
tag_tcpHeader.th_lenres = ( sizeof(tag_tcpHeader) / 4 << 4 | 0 );
tag_tcpHeader.th_flag = 2; //修改这里来实现不同的标志位探测,2是SYN,1是FIN,16是ACK探测等等
tag_tcpHeader.th_win = htons( 512 );
tag_tcpHeader.th_urp = 0;
tag_tcpHeader.th_sum = 0; tag_psdHeader.saddr = tag_ipHeader.sourceIP;
tag_psdHeader.daddr = tag_ipHeader.destIP;
tag_psdHeader.mbz = 0;
tag_psdHeader.ptcl = IPPROTO_TCP;
tag_psdHeader.tcpl = htons( sizeof(tag_tcpHeader) ); //计算效验和
memcpy( szSendBuf, &tag_psdHeader, sizeof(tag_psdHeader) );
memcpy( szSendBuf + sizeof(tag_psdHeader), &tag_tcpHeader, sizeof(tag_tcpHeader) );
tag_tcpHeader.th_sum = Scan_CheckSum( (USHORT*)szSendBuf, sizeof(tag_psdHeader) + sizeof(tag_tcpHeader) ); memcpy( szSendBuf, &tag_ipHeader, sizeof(tag_ipHeader) );
memcpy( szSendBuf + sizeof(tag_ipHeader), &tag_tcpHeader, sizeof(tag_tcpHeader) );
memset( szSendBuf + sizeof(tag_ipHeader) + sizeof(tag_tcpHeader), 0, 4 );
tag_ipHeader.checksum = Scan_CheckSum( (USHORT*)szSendBuf, sizeof(tag_ipHeader) + sizeof(tag_tcpHeader) );
memcpy( szSendBuf, &tag_ipHeader, sizeof(tag_ipHeader) );
nRect = sendto( sock, szSendBuf, sizeof(tag_ipHeader) + sizeof(tag_tcpHeader), 0, (struct sockaddr*)&tag_add_in, sizeof(tag_add_in) );
if ( nRect == SOCKET_ERROR )
{
AfxMessageBox("Send Error!");
} 请求各位大大帮忙看看 是否有错