struct sock5req2 *m_proxyreq2;
char buff[600];
m_proxyreq2 = (struct sock5req2 *)buff;
m_proxyreq2->Ver = 5;
m_proxyreq2->Cmd = 1;
m_proxyreq2->Rsv = 0;
m_proxyreq2->Atyp = 1;
unsigned long tmpLong = inet_addr(GetServerHostName()); //这个getServerHostName函数
unsigned short port = ntohs(GetPort());//这个GetPort函数
memcpy(m_proxyreq2->other,&tmpLong,4);
memcpy(m_proxyreq2->other+4,&port,2);
ClientSock.Send(buff,sizeof(struct sock5req2)+5);
以上两个函数不会写,请指教!!功能好像是将字符串转换成long和short??

解决方案 »

  1.   

    唉,用不着写的,呵呵,你要连接服务器,自己肯定是知道地址和端口的
    直接写进去就可以了,GetServerHostName的地方写字符串的地址,GetPort的地方写SHORT或者INT的端口
      

  2.   

    如果是本地Servername 是否为“localhost”
      

  3.   

    用CInternetConnection::GetServerName试一试
      

  4.   

    unsigned long tmpLong = inet_addr(GetServerHostName()); //这个
    能转换成long型吗,试试,我这里不行呀
      

  5.   

    struct sockaddr_in server;
    server.sin_addr.s_addr=inet_addr("192.168.0.1");去看看sockaddr_in结果的定义