t ");
StartCon( hWin,“internet",“local@pub2.fz.fj.cn",
“aabb99",“9W163" );
break;
case IDC_ADDRESS:
// 读 取 远 程 计 算 机Internet IP 地 址
ShowMsg(hWin,“ 正 在 取 IP 地 址");
if ( (dwLen=FtpWriteRead(“ftp.maoming.gd.cn",
“abc.txt",40,cRemoteIP,1))>0 )
{
cRemoteIP[dwLen]=‘\0'';ShowMsg(hWin,cRemoteIP);
ShowMsg(hWin,“ 删 除IP 地 址 文 件..");
MyFtpDeleteFile(“ftp.maoming.gd.cn",“abc.txt");
}
else
ShowMsg(hWin,“ 取IP 失 败");
break;
case IDC_RDISC:
// 通 知 远 程 计 算 机 断 开Internet 连 接
ShowMsg(hWin,“ 正 在 向 远 端 发 Disconnect");
SendCmd(cRemoteIP,“DISCONNECT");
break;
}
ThreadId=0;hThread=NULL;
return;
}
// 远 程 计 算 机 运 行 线 程 函 数
void ServerThread(void * pp )
{
RASPPPIP rip;
DWORD ret,ll;
SOCKADDR_IN acc_sin, dest_sin; // 地 址
int acc_sin_len,status;
char szMsg[ MY_MSG_LENGTH ];
serv_sock = socket(AF_INET,SOCK_STREAM,0);
dest_sin.sin_family=AF_INET;
dest_sin.sin_addr.s_addr=INADDR_ANY;
dest_sin.sin_port=htons(1023);
bind(serv_sock,(struct sockaddr FAR *)
&dest_sin,sizeof(dest_sin));
listen(serv_sock,MAX_PENDING_CONNECTS);
while( TRUE )
{
acc_sin_len = sizeof(acc_sin);ShowMsg
(hWin,“ 等 待 呼 叫");
rsock = accept( serv_sock,(struct sockaddr FAR *)
&acc_sin,(int FAR *) &acc_sin_len );
if (rsock < 0)
{ShowMsg(hWin,“Accept Error!");break;}
ShowMsg(hWin,“ 收 到 连 接 请 求!");
status = recv( rsock, szMsg, MY_MSG_LENGTH,
NO_FLAGS_SET );
if (status == SOCKET_ERROR)
{ShowMsg(hWin,“Recv Error!");break;}
if (status)
{
szMsg[status] = ‘\0''; ShowMsg(hWin,szMsg);
if ( strstr(szMsg,“REQUEST") != NULL )
{
isend(rsock,“OK",2,0);
closesocket(rsock);Sleep(3000);
// 等 待 拨 号 连 接 退 出
if (StartCon( hWin,“163",“remote@pub2.fz.fj.cn",
“abcd",“163" ) == TRUE )
{
// 取 动 态 分 配 的IP 地 址