- 1
- 0
- 约4.03千字
- 约 10页
- 2016-12-30 发布于重庆
- 举报
# pragma comment(lib, ws2_32.lib)
#include STDIO.H
#include WINSOCK2.H
SOCKET g_sockClient = INVALID_SOCKET;
//提示程序的使用方法
void usage();
//捕获关闭信息
BOOL WINAPI CtrlHandler(DWORD dwEvent);
int main(int argc, char* argv[])
{
unsigned long destAddr; //目标地址
int nPort; //目标端口
//只有两个参数,即没有给出端口号
if (argc == 2){
destAddr = inet_addr(argv[1]);//获取要连接的目标主机的IP地址
if (destAddr == INADDR_NONE){
usage(); //不是合法的IP地址,则显示程序的使用方法
return -1;
}
nPort = 23;//取得IP地址之后,默认目标端口号为23,即telnet端口
}
else
//给出了目标IP地址和目标TCP端口号
if (argc ==3){
destAddr = inet_addr(argv[1]); //获取要连接的目标主机的IP地址
if (destAddr == INADDR_NONE){
usage(); //不是合法的IP地址,则提示程序的使用方法
return -1;
}
nPort = atoi(argv[2]);//获取目标端口号
if (nPort=0 || nPort 65535){
usage();//端口非法,提示用户本程序正确的使用方法
return -1;
}
}
else{ //没有给出参数,则提示用户本程序正确的使用方法
usage();
return -1;
}
//以上步骤之后,获得了目标IP,和目标TCP端口
//设置钩子,捕获控制台程序的关闭消息
if (!SetConsoleCtrlHandler(CtrlHandler, TRUE)){
printf(SetConsoleCtrlHandler: %d\n, GetLastError());
return -1;
}
//初始化Winsock
WSADATA wsaData;
WSAStartup(WINSOCK_VERSION, wsaData);
//创建SOCK_STREAM类型的套接口
g_sockClient = socket(AF_INET, SOCK_STREAM, 0);
//如果创建失败,则处理
if (g_sockClient == INVALID_SOCKET){
WSACleanup();
return -1;
}
//定义sockaddr_in类型的结构变量to
struct sockaddr_in to;
//初始化to
memset(to, 0, sizeof(to));
//给to的成员变量赋值
to.sin_addr.s_addr = destAddr;//IP地址
to.sin_family = AF_INET; //地址族
to.sin_port = htons(nPort);//端口号
//显示用户正要连接的IP和端口号
printf(connecting %s: %d ...... , inet_ntoa(to.sin_addr), nPort);
//如果connect连接不成功,处理
if (connect(g_sockClient, (struct sockaddr *) to, sizeof(to)) == SOCKET_ERROR){
if (g_sockClient != INVALID_SOCKET)
closesocket(g_sockClient); //关闭套接字g_sockClient
printf(Failed. (connect %d) \n, WSAGetLastError());
WSACleanup();
return -1;
}
else
printf(Successfully. \n);//提示连接成功
//定义83字节的数组,用于发送数据
char bufa[83];
//定义1000字节的数组,用于接收服务器返回的信息
char
您可能关注的文档
- 一个完整呼叫的信令流程.doc
- 一个小圆使在其正八边形边上移动.doc
- 一个成功的教师不能缺席教研.doc
- 一个把酸性体质改成碱性体质的秘密宝典.doc
- 一个教书匠的坦白书.doc
- 一个散户的自我修养(好文).doc
- 一个数学系学生的自白.doc
- 一个无政府主义者的意外死亡--剧本.doc
- 一个月通过公务员.doc
- 一个父亲写给15岁女儿的信.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)