当前位置:  技术问答>linux和unix

echo的传输时间问题

    来源: 互联网  发布时间:2017-01-02

    本文导语:  最近在做ipv6下面的数据传输测试 自己弄了个程序,但是具体传输时间一直不知道怎么解决 这个是服务器端的 #include  #include  #include  #include  #include  #include  #include  #include  #include  static  int listen_fd  = -1; vo...

最近在做ipv6下面的数据传输测试
自己弄了个程序,但是具体传输时间一直不知道怎么解决
这个是服务器端的
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 


static  int listen_fd  = -1;

void exit_handler(int no)
{
close(listen_fd);
exit(0);
}

int main(int argc,char * argv[])
{
unsigned short port = 10002;

char buffer[1024000];
int  len,i;


signal(SIGTERM,exit_handler);
signal(SIGINT,exit_handler);

       /* ipv 6 地址 */
struct sockaddr_in6 server_addr;
struct sockaddr_in6 client_addr;
socklen_t sockaddr_len = sizeof(struct sockaddr_in6);

if(argc > 1)
port = (unsigned short)atoi(argv[1]);




/* 第一步:创建TCP 侦听SOCKET*/
listen_fd  = socket(PF_INET6,SOCK_STREAM,0);
if(listen_fd == -1)
{
perror("socket");
}


/* 第二步:设置侦听端口 */
       memset((void *)&server_addr,0,sizeof(server_addr));
        
server_addr.sin6_family = AF_INET6 ; /* ipv6 */
server_addr.sin6_port = htons(port);
server_addr.sin6_addr = in6addr_any;

if(bind(listen_fd,(struct sockaddr *)&server_addr,sockaddr_len)!=0)
{
perror("bind");
exit_handler(0);

}

/* 第三步:通知内核开始侦听 ,这里是非阻塞 */
if(listen(listen_fd,20)!= 0)
{
perror("listen");
exit_handler(0);
}

fprintf(stdout,"TCP echo server ,listen on %dn",port);

/* 第四步:开始用等待客户端的联接 */
while(1)
{
int new_fd ;
                memset((void *)&client_addr,0,sizeof(client_addr));
                   sockaddr_len = sizeof(client_addr);

/* 没有客户端联接,将会这里阻塞*/
new_fd = accept(listen_fd,(struct sockaddr *)&client_addr,&sockaddr_len);
if(new_fd == -1)
continue;

              

fprintf(stdout,"client connect: ip %s,port %dn",inet_ntop(AF_INET6, (void *)&(client_addr.sin6_addr),buffer, sockaddr_len),ntohs(client_addr.sin6_port));


         
/* 做ECHO操作*/
len =  recv(new_fd,buffer,sizeof(buffer),0);
if(len  1)
      //port = (unsigned short)atoi(argv[1]);
       Datasize =(unsigned short)atoi(argv[1]);
   for(a=0;a 2)
       strncpy(ip,argv[2],sizeof(ip)-1);



    /* 第一步:创建TCP 侦听SOCKET*/
    tcp_fd  = socket(PF_INET6,SOCK_STREAM,0);
     if(tcp_fd == -1)
       {
          perror("socket");
       }

   /* 第二步:可选操作bind,如果没有bind,TCP协议栈自动选一个端口 */

    /* 第三步:联接服务器 */
    memset((void *)&server_addr,0,sizeof(server_addr));

    server_addr.sin6_family = AF_INET6 ; /* ipv4 */
      server_addr.sin6_port = htons(port);

     len =inet_pton(AF_INET6, ip, (void *)&(server_addr.sin6_addr));
    
     printf("len=%dn",len);/* success = 1 */
    
#if 0
     if(len != 0)
        {
            perror("inet_pton");
              exit_handler(0);
        }
#endif

      fprintf(stdout,"connect TCP echo server %s:%dn",ip,(int)port);

     if(connect(tcp_fd,(struct sockaddr *)&server_addr,sockaddr_len) != 0)
       {
          perror("connect");
            exit_handler(0);
       }

    while(1)
      { 
        //gettimeofday(&tv,NULL);   //接受发送时间 
        /* if(fgets(buffer,sizeof(buffer)-1,stdin)== NULL)
             {
                perror("fgets"); 
             continue;
             }
          
          if(strncmp(buffer,"exit",4) == 0)
               {
                 send(tcp_fd,"exit",5,0);
                    exit_handler(0);
                      break;           
               }*/


            len = strlen(buffer)+1;
gettimeofday(&tv,NULL);   //接受发送时间 
           if((len  = send(tcp_fd,buffer,len,0))

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • echo $$的问题 ,echo $($test)这个不行
  • Makefile中使用echo的问题
  • shell脚本执行echo显示参数问题
  • 有关echo下文本输出的问题
  • 求助echo问题
  • echo相关的一个问题,,疑惑中。。。。。。。。。
  • 嵌入式LINUX启动是ECHO信息的问题
  • 关于命令echo输出“!”问题
  • 创建的用户名、密码的问题 echo格式
  • 关于echo 不显示的一个问题
  • 请教:linux串口问题(echo test > /dev/tcc-uart2)在PC终端上收不到数据
  • 小弟请教个问题,@ECHO OFF是什么意思?有什么用?
  • echo 的问题 高分求助
  • 一个简单的echo程序的问题
  • echo ’*’与echo *的执行结果有什么区别?为什么?
  • linux里echo $与linux echo $[]有什么区别?
  • echo `echo \\\z` 为什么输出是 \z
  • echo -e 与echo -n的区别,我们老师是不是说错了
  • echo把选项-e输出了?
  • echo到底怎么用?
  • echo -n不生效
  • 怎样在echo里面实现换行?
  • JavaScript 图像延迟加载库 Echo.js
  • echo 能回显多行内容吗?
  • echo换行回显
  • echo $? 是什么意思?
  • shell里怎样把echo出来的东西放到变量中??
  • 这个echo的是什么意思
  • echo -n abcdef >/dev/memory什么意思??
  • echo $?为什么没有用
  • --------在stty -echo屏蔽回显后,如何重新获得回显?--------


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3