CSocket mysock;//全局 变量AfxSocketInit(NULL);
mysock.Create();
mysock.Connect("192.168.24.89",511);char a[]="ok";
mysock.Send(a,2,0);
为什么一发送完就断开连接了呢????

解决方案 »

  1.   

    没这么简单
    参考一下吧:
    sockSend.Create(0,SOCK_DGRAM,NULL);   
    sockSend.SetSockOpt(SO_SNDBUF,(const   char*)&Buf,sizeof(int));  //发送缓冲区
    sockSend.SetSockOpt(SO_BROADCAST,(char*)&IsBroadcast,sizeof(BOOL));//设置为广播
    sockSend.SetSockOpt(IP_TTL,(LPSTR)&ttl,sizeof(ttl),IPPROTO_IP); //设置TTL值,可透过路由器
    for(k=0;k<500;k++)
    {
    cs_str.Format("%3d  Hello UDP Data OK",i++);
    sockSend.SendTo(cs_str,cs_str.GetLength(),RemotePort,RemoteIP);
    }
    sockSend.Close();
      

  2.   

    我的经验是send和recv必须成对出现,也就是说你发送一条数据,服务器端和客户端都要分别使用一对send和recv,程序向下执行如果没有send或者recv连接自动断开,如果你想一直连接就必须使用一个死循环不断等待连接,但是这样会使你的程序停止响应,所以最好启动一个新的线程,在其中使用一个死循环来处理网络连续通信的问题,回答完毕。