安全扫描技术课程设计(11)
发布时间:2021-06-07
发布时间:2021-06-07
tcp端口扫描及tcp服务器搭建
本程序中服务器与客户端的通信即实现双方的信息收发,与服务器模块同理,具体实现方法为调用相应的功能函数,Socket send函数和recv函数。
e) 完成与服务器的秘密服务
秘密服务的实现主要由共享了秘密的客户端发起,通过发送只指定的密令从而实现相应的功能,这是其他公共服务所不能做到的,具体的实现如下:
/*-------------------------------通信模块---------------------------------*/
printf("***需要与该服务器的端口进行通信?***\n***输入1继续,输入0退出:"); scanf("%d",&kk);
if (kk==1){ //begin sending
printf("***输入通信的信息或是端口秘密值***\n"); scanf("%s",&sendinfo);
printf("***开始进行通信!***\n"); while (1) { //sprintf(SBuf,"END!(%c:%d)",C,SNo++);//将数据存入SBuf sprintf(SBuf,"%s(%c:%d)",sendinfo,C,SNo++);//将数据存入SBuf if(SNo > SendMaxNo) //完成发送的次数,如果连接已中止,返回0 { #ifdef unix close(SockFd); #endif #ifdef _WIN32 closesocket(SockFd); #endif count++; break; }
#ifdef DeDoTCPClient printf("SBuf=%s:%d \n", SBuf,SendLen); GQuit; #endif
SendLen=strlen(SBuf);
iSend=send(SockFd,SBuf,SendLen,0);//client sends to server if(iSend<-1) { perror("send() Failed"); }
printf("--Send OK(信息长度=%d:数据长度=%d)\n",iSend,SendLen);
iRecv=recv(SockFd,RBuf,sizeof(RBuf),0); if(iRecv==0) {printf("iRecv =0\n");} else if(iRecv==SOCKET_ERROR) { //与服务器断开连接 perror("***recv() Failed***"); //perror( ) 用来将上一个函数发生错误的原因输出到标准设备(stderr)
下一篇:利乐(中国)有限公司