是不是mysocket.Close ();出现问题了..(程序执行后,close的位置是不是有问题).还有mysocket是什么类的?(关注).其实我也不知道..瞎菜

解决方案 »

  1.   

    程序主体没有错,应是mysocket.SendTo 和mysocket.Close出了问题。
    这两个是不是CSOCKET类?你可以直接用WSAWINSOCKET来作。
             
             
         
          VersionRequested = MAKEWORD(VERSION_MAJOR, VERSION_MINOR);
           Error = WSAStartup(VersionRequested, &WsaData); 
       socketfh = WSASocket(PF_INET, SOCK_STREAM, 0, NULL, 0, 0);
       if (socketfh == INVALID_SOCKET) {
                printf("open_socket :: open socket error\n%d",socketfh);
           return(-1);
       }SockAddr.sin_family = AF_INET;
        SockAddr.sin_port = htons(port);
    SockAddr.sin_addr.s_addr = inet_addr(ip);
        SockAddrLen = sizeof(SockAddr);
        ConnectStatus = WSAConnect(socketfh, (struct sockaddr *)&SockAddr, SockAddrLen, 
                      NULL, NULL, NULL, NULL);    if (ConnectStatus == SOCKET_ERROR) {
            Error = WSAGetLastError();
            if (Error != WSAEWOULDBLOCK) { 
                printf(" make_sckt ::socket  Connect failed.  Error code: [%d]\n", Error);
            return(-1);
            }
        } 
        printf("make_sckt ::make_sckt id is [%d]\n",socketfh);
    return((int )socketfh) ;
      

  2.   

    应该是if语句写错,
    你试试这样写看可不可以
        if( ( ret = mysocket.SendTo (str,strlen (str),10000,"192.168.1.157",0) ) ==0 )
      

  3.   

    char *str没有分配内存空间
      

  4.   

    同意wx_zzm() 的看法,应该用char buf[256]
      

  5.   

    没有分配空间:str = new char[255];