TCP 指定源端口

  1. 轉載,原文地址:http://blog.csdn.net/liangxiaozhang/article/details/8267854

  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <strings.h>
  5. #include <arpa/inet.h>
  6. #include <sys/socket.h>

  7. int main(){
  8.     int sockfd = socket(AF_INET,SOCK_STREAM,0);
  9.     if(sockfd==-1)perror("sock");
  10.     struct sockaddr_in mine,dest;
  11.     
  12.     bzero(&mine,sizeof(mine));
  13.     mine.sin_family = AF_INET;
  14.     mine.sin_port = htons(3334);
  15.     inet_pton(AF_INET,"192.168.1.100",&mine.sin_addr);
  16.     
  17.     bzero(&dest,sizeof(dest));
  18.     dest.sin_family = AF_INET;
  19.     dest.sin_port = htons(9999);
  20.     inet_pton(AF_INET,"192.168.1.100",&dest.sin_addr);

  21.     int b = bind(sockfd,(struct sockaddr*)&mine,sizeof(mine));
  22.     if(b==-1)perror("");
  23.     
  24.     int c = connect(sockfd,(struct sockaddr*)&dest,sizeof(dest));
  25.     if(c!=0)perror("");

  26.     close(sockfd);

  1. }


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/socket.h>
  4. #include <arpa/inet.h>
  5. #include <strings.h>

  6. int main(){
  7.     int sockfd = socket(AF_INET,SOCK_STREAM,0);
  8.     struct sockaddr_in addr;
  9.     bzero(&addr,sizeof(addr));
  10.     addr.sin_family = AF_INET;
  11.     addr.sin_port = htons(9999);
  12.     inet_pton(AF_INET,"192.168.1.100",&addr.sin_addr);

  13.     bind(sockfd,(struct sockaddr*)&addr,sizeof(addr));
  14.     listen(sockfd,5);
  15.     while(1){
  16.         struct sockaddr_in c_addr;
  17.         int c_len = sizeof(c_addr);
  18.         bzero(&c_addr,c_len);
  19.         int c = accept(sockfd,(struct sockaddr*)&addr,&c_len);
  20.         if(c==-1)perror("");
  21.         char ip[40]={0};
  22.         int port;
  23.         inet_ntop(AF_INET,&addr.sin_addr,ip,40);
  24.         port = ntohs(addr.sin_port);
  25.         printf("from %s:%d\n",ip,port);
  26.         close(c);

  27.     }

  28. }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章