求高手帮忙!! 连接telnet的时候,为什么connect上 返回信息的地址里为空啊!
我想用程序连telnet 为什么recv收到的字节数和地址都为空啊~~
还有connect上 返回的信息是login和login's password吗 我直接send用户名和密码可以吗?
代码如下 望高手指点!! 拜求~ 拜求~
#include <iostream.h>
#include <stdio.h>
#include<winsock2.h>
#include "D:\Dev-Cpp\include\mstcpip.h"
#pragma comment( lib, "ws2_32.lib" )
int main(){
int iLength = 0;
int iEnd = 0;
int err;
char sBuff[1024] = "";
char susrBuff[255] = "oracle\r\n";
char rusrBuff[1024]="";
char spasBuff[255]="orap650\r\n";
char rpasBuff[1024] = "";
int iMsg = 0;
WSADATA Wsa;
WSAStartup(0x0101,&Wsa);
SOCKET s = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("10.48.96.8");
sin.sin_family = AF_INET;
//侦听端口
sin.sin_port = htons(23);
cout<<"connectting......"<<endl;
err = connect(s,(LPSOCKADDR)&sin,sizeof(sin));
if(err == SOCKET_ERROR)
cout<<"Error: can't connect to server :("<<endl;
iLength = recv(s,(LPSTR)sBuff, strlen(sBuff),0);
iEnd = iLength;
sBuff[iEnd] = '\0';
if(iLength==SOCKET_ERROR)
cout<<"usr rcv err"<<endl;
else{
printf("%d\n",iLength);
printf("%s\n",sBuff);
cout<<"rec:"<<sBuff<<endl;
}
//user name
if(send(s,(LPSTR)susrBuff,strlen(susrBuff),0)==SOCKET_ERROR){
cout<<"usr send err"<<endl;
}
else{
cout<<"usr send success"<<endl;
}
iLength = recv(s,(LPSTR)rusrBuff, strlen(rusrBuff),0);
iEnd = iLength;
rusrBuff[iEnd] = '\0';
if(iLength==SOCKET_ERROR)
cout<<"usr rcv err"<<endl;
else{
printf("%d\n",iLength);
printf("%s\n",sBuff);
cout<<"rec:"<<rusrBuff<<endl;
}
//password
if(send(s,(LPSTR)(spasBuff),strlen(spasBuff),0)==SOCKET_ERROR){
cout<<"send pass err"<<endl;
}
else{
cout<<"pass send success"<<endl;
}
iLength = recv(s,(LPSTR)rpasBuff,strlen(rpasBuff),0);
iEnd = iLength;
rpasBuff[iEnd] = '\0';
if(iLength==SOCKET_ERROR)
cout<<"rcv err"<<endl;
else{
printf("%d\n",iLength);
printf("%s\n",sBuff);
cout<<"rec:"<<rpasBuff<<endl;
}
//关闭连接
closesocket(s);
WSACleanup();
int i;
cin>>i;
return 0;
}