C socket复习

之前学过很长一段时间,我记得当时还花钱找了个专业的人使劲问一些不懂的问题,感觉有人指路会很好弄。

结果其实不然,他得思路未必适合你的使用。然后这几天一直都在纠结一些东西,不知道怎么去实现。

目前想到的方案是用C来实现底层的通讯,中间加锁来减轻通讯压力。被迫复习SOCKET,我一直都很喜欢Perl

因为我一直都觉得它是代替C的工具,但是其实在某种情况下,Perl是有瓶颈的。Python也是如此。

自己按照复习的顺序写了个socket的案例,跟扫描相关。我本来就是做安全类的东西,不多解释了。。

#include<sys/socket.h>
#include<stdio.h>
#include<netinet/in.h>
#include<string.h>

int testport(int port,char address[]);

void main(){
  int i;
  for(i=1;i<65535;i++){
     if(testport(i,"192.168.31.254")==1){
        printf("%d:端口开放\n",i);
     }
  }
}

int testport(int port,char address[]){
  //定义sockfd
  int sock_cli=socket(AF_INET,SOCK_STREAM,0);

  //定义sockaddr_in
  struct sockaddr_in servaddr;
  memset(&servaddr,0,sizeof(servaddr));
  //设定协议族
  servaddr.sin_family=AF_INET;
  //设定端口
  servaddr.sin_port=htons(port);
  //设定地址
  servaddr.sin_addr.s_addr=inet_addr(address);

   //判断是否连接成功
   if(connect(sock_cli,(struct sockaddr *)&servaddr,sizeof(servaddr))<0){
        return -1;
   }else{
        return 1;
   }
}

 

posted @ 2014-04-14 14:54  墨迹哥's  阅读(197)  评论(0编辑  收藏  举报