使用原始套接字发送tcp的syn包,在接收端如何接收发过来的syn包?

sdchl 2003-10-17 03:03:22
请各位大侠指教,先谢了。
...全文
232 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
feeboby 2003-10-20
  • 打赏
  • 举报
回复
syn包的话,是要RCV——ALL来接受,
sdchl 2003-10-20
  • 打赏
  • 举报
回复
看来真的需要想别的办法了。
windwu 2003-10-18
  • 打赏
  • 举报
回复
可以看看这个:http://expert.csdn.net/Expert/topic/2333/2333459.xml?temp=.3996088
fanfyj 2003-10-18
  • 打赏
  • 举报
回复
up
sevencat 2003-10-17
  • 打赏
  • 举报
回复
好像你这样做不可能接受到的
假如在98下,你基本上没有办法了。
假如在2K下,你可以用RCV——ALL来接受,(不过效率很差)
nmap用的winpcap 来接收的。你可能也只有用这个来了呵呵,不然就准备写自己的NDIS了
因为一般情况下你是根本接收不到的。
WIN的内核根本不知道你这个套接字想要接受这样的包。
他只是看看套接字队伍中有没有哪个套接字对这个返回包感兴趣(端口),没有的话直接丢掉了。

//===========
是写扫描器吧?不然怎么会发送这个?
sdchl 2003-10-17
  • 打赏
  • 举报
回复
发送端向接收端的7000端口发送syn包,我写的接收端接收syn包的程序如下,可不可以接收啊:
int length;
int dwLength=300;
DWORD dwSenderSize;
char recvbuf[500];

int ErrorCode,flag;
int TimeOut,nTimes;





WSADATA wsaData;
SOCKET SockRaw;


struct sockaddr_in local,sender;

//Initialize SOCK_RAW
if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0)
{
return 0;
}

//Create a Raw socket
//SockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);

SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);
if (SockRaw==INVALID_SOCKET)
{
return 0;
}
flag=TRUE;

//Set IP_HDRINCL Fill IP Header By itsSelf
ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));
if (ErrorCode==SOCKET_ERROR)
{
return 0;
}



local.sin_family = AF_INET;
local.sin_port = htons((short)7000);
local.sin_addr.S_un.S_addr=inet_addr("192.168.1.55");
//bind to local port
if (bind(SockRaw, (SOCKADDR *)&local, sizeof(local)) == SOCKET_ERROR)
{
printf("bind() failed: %d\n", WSAGetLastError());
int j = WSAGetLastError();
return 0;
}

nTimes=0;
while(1)
{
nTimes++;
dwSenderSize = sizeof(sender);
//recv data
length = recv(SockRaw, recvbuf, dwLength, 0);
if (length==SOCKET_ERROR)
{
continue;
}
}

closesocket(SockRaw);
xiaohyy 2003-10-17
  • 打赏
  • 举报
回复
就在该socket上接收就是了。
windwu 2003-10-17
  • 打赏
  • 举报
回复
还是用原始套接字接受啊
WSARecv(RawSocket, &Buf, 1, &dwBytesRet, &dwFlags, NULL, NULL);

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧