免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1153 | 回复: 0
打印 上一主题 下一主题

SOCKER客户端 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-23 15:36 |只看该作者 |倒序浏览

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_SIZE 1500//*40
#define SERV_PORT 8088
#define test test.dat
void connectUDP(int len,int sockfd,struct sockaddr *pservaddr,socklen_t servlen,long num)
{
                char buf[MAX_SIZE];
//                fd_set wrset;
//                struct timeval tv;
//                int rlen,wlen;
//                int ret;
                int i;
                    /********************************************
                    s:标识一个未连接套接口的描述字。
                      name:欲进行连接的端口名。(自己填充用于SOCKER连接的结构体)
                  namelen:名字长度。
                    ********************************************/
                if(connect(sockfd,(struct sockaddr *)pservaddr,servlen) == -1)//建立与一个端的连接
                {
                        perror("connet error");
                        exit(1);
                }
                else
                        printf("connect server ok!\n");
                      memset(buf,'*',len);
                     for(i = 0;i;\n");
                exit(1);
        }
        /******************************************************
        struct sockaddr_in {
        short int sin_family;                      // 指定类型 分别为AF——INET和PF——INET分别是地址和协议类型
        unsigned short int sin_port;       // 端口号
        struct in_addr sin_addr;              // Internet address
        unsigned char sin_zero[8];         // Same size as struct sockaddr
        };
        ******************************************************/
        bzero(&servaddr,sizeof(servaddr));
        servaddr.sin_family= AF_INET;
        servaddr.sin_port = htons(SERV_PORT);//将一个无符号短整形数从网络字节顺序转换为主机字节顺序。
        
        if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr) <= 0)//将点分十进制(IP地址形式)转换成网络字符串网络地址
        {
                printf("[%s]is not a valid IPaddress\n",argv[1]);
                exit(1);
        }
        fh = argv[2];
            /*************************************************
            af - 地址家族(通常使用:AF_INET)
            type - socket的种类
            SOCK_STREAM : 用于TCP协议
            SOCK_DGRAM : 用于UDP协议
            protocol - 所使用的协议
            *************************************************/
        sockfd =socket(AF_INET,SOCK_DGRAM,0);//用于生成socket(soket Descrīptor)
        
        r = fcntl(sockfd, F_GETFL, 0);
        fcntl(sockfd, F_SETFL, r & ~O_NONBLOCK);
          num = atoi(argv[2]); //把字符串转换成整型数 发包数量
          len = atoi(argv[3]);    //把字符串转换成整型数 发包长度
          printf("%d\n",len);
         connectUDP(len,sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr),num);           
        fprintf(stderr,"ServerIP:\t%s\n",argv[1]);        
/*        if(stat(argv[2],&fsize) == -1)
                perror("failed to get fiel statusi\n");
        else        
                fprintf(stderr,"file name:\t%s\nfile size:\t%ldK\n",argv[2],fsize.st_size/1024);
        
*/      error2=sysinfo(&s_info);//获取系统总体的统计信息
       time2 = s_info.uptime;
        printf("tranfice file time =%fs\n",(time2-time1));
           return 0;
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/72457/showart_1736751.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP