也就是说,我做一个模拟程序,用Raw Socket发一个Syn给一个Server,
当收到这个Server的Ack Syn后马上给他发一个Ack;
通过这样的方式来模拟建立连接,这样可行吗?

解决方案 »

  1.   

    可以的,
    不过server的话比较复杂,因为系统已经实现了tcp了,你必须不能让这些raw packet传到系统的tcp栈里如果是linux,server比较好实现,可以看看关于的实现,windows的话,我没有试过。
      

  2.   

    各位可能误会我的意思了.
    我的意思是用raw socket做一个Client,Server开放一个监控端口,Server程序是现成的;
    用Client发送一个Syn包给Server,此时Server会回一个syn ack;
    Client收到Server的syn ack后马上发送一个ack给Server;
    通过这种方式来建立Socket连接,即模拟三次握手的方式。
    我现在做的Client程序已经可以正常发送Syn包、收到Server的syn ack,并发送ack给Server
    但是Socket连接始终建立不成功,不知道为什么??