我用winsocket编写为什么在我自己的机器上试能连上,而在上网以后和远程机器就连不上呀?(当然我知道一台与两台不一样),可我以前用的CSocket可以的,请问可能是什么问题?
BOOL InISock()
{
/*
#define WM_SOCK       280
#define US_MAXSIZE    1024
*/
//Variable Define
int Status;
//WORD wMajorVersion,wMinorVersion;
WORD wVersionReqd;
WSADATA lpmyWSAData;
wVersionReqd = MAKEWORD(1,2);

Status = WSAStartup(wVersionReqd,&lpmyWSAData); if (Status != 0)
return FALSE;

return TRUE;
}
BOOL SetListenSock()
{
int T; //Socket
p_ListenSocket = socket(AF_INET,SOCK_STREAM,0);//
if (p_ListenSocket==INVALID_SOCKET)
return FALSE; p_ListenSocketAddr.sin_family = AF_INET;
p_ListenSocketAddr.sin_port = htons(PORT);//
p_ListenSocketAddr.sin_addr.s_addr = INADDR_ANY
T = bind(p_ListenSocket,(struct sockaddr far *)&p_ListenSocketAddr,sizeof(p_ListenSocketAddr));
if (T != 0)
             return FALSE; T = listen(p_ListenSocket,5);
if (T!=0){
AfxMessageBox("¼àÌý³ö´í£¡BOOL SetListenSock()");
return FALSE;
}    return TRUE;
}
UINT SendFile(LPVOID pParam)
{//
SOCKETm_SendSocket;
struct sockaddr_in SocketAddr;

m_SendSocket = socket(AF_INET,SOCK_STREAM,0);
if (m_SendSocket < 0){
return 0;
}
//以下是设置IP IP是没有错的
BYTE nField[4];
dlg->m_IpAddressCtrl.GetAddress(nField[0],nField[1],nField[2],nField[3]);
SocketAddr.sin_addr.S_un.S_un_b.s_b1=nField[0];
SocketAddr.sin_addr.S_un.S_un_b.s_b2=nField[1];
SocketAddr.sin_addr.S_un.S_un_b.s_b3=nField[2];
SocketAddr.sin_addr.S_un.S_un_b.s_b4=nField[3];
SocketAddr.sin_family = AF_INET;
SocketAddr.sin_port = htons(PORT); //SocketAddr.sin_addr.s_addr = inet_addr(dlg->m_sAddress);

int msgsock = connect(m_SendSocket,(struct sockaddr*)&SocketAddr,sizeof(SocketAddr));
if (msgsock!=0){
AfxMessageBox("连接错误",MB_OK);//总在这里是提示 return FALSE;
}
..............
}