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

再问网络编程里的些些问题,有关while的

    来源: 互联网  发布时间:2016-09-27

    本文导语:  直接上代码: /服务端部分: while(1){ sizecli = sizeof(cliaddr); acceptfd = accept(socketfd,(struct sockaddr*)&cliaddr,&sizecli); if(acceptfd == -1){ perror("accpet"); exit(0); } printf("acceptfd OKn"); while((recthing = read(acceptfd,buf,size...

直接上代码:
/服务端部分:

while(1){
sizecli = sizeof(cliaddr);
acceptfd = accept(socketfd,(struct sockaddr*)&cliaddr,&sizecli);
if(acceptfd == -1){
perror("accpet");
exit(0);
}
printf("acceptfd OKn");
while((recthing = read(acceptfd,buf,sizeof(buf))) > 0){
printf("%dn",recthing);
buf[recthing] = 0;
printf("receive message:%sn",buf);
// fputs(buf,stdout);
// fflush(stdout);
}
printf("start...n");
memset(buf,0,sizeof(buf));
sprintf(buf,"%s","ser get it");
if(send(acceptfd,buf,strlen(buf),0) == -1){
perror("send");
exit(0);
}
close(acceptfd);
}


/客户端部分:

if((inet_pton(AF_INET,argv[1],&servaddr.sin_addr)) ==-1){
perror("inet_pton");
exit(0);
}

if(connect(socketfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) ==-1){
perror("connect");
exit(0);
}
memset(buf,0,sizeof(buf));
sprintf(buf,"%s",argv[2]);
write(socketfd,buf,strlen(buf));
printf("cli to ser OKn");
// memset(buf,0,sizeof(buf));
if((n = recv(socketfd,buf,sizeof(buf),0)) == -1){
perror("recv");
exit(0);
}
else{
buf[n] = 0;
printf("%sn",buf);
}
close(socketfd);
exit(0);
}

本人稍微改了下程序想实现客户端先传数据个服务端,然后服务端传给确定给客户端,但运行的时候服务端就停留在while((recthing = read(acceptfd,buf,sizeof(buf))) > 0)这边,直到客户端结束服务端才正常执行之后的代码,这是为何呢?望大哥大姐们帮帮忙的啊.....

|
你的服务端没有检查读到的数据长度,没完没了的读,把客户端的数据读完了,服务端自己就阻塞在read上了

|
1.没有必要一直用while()让他一直读取数据。
2.socket里面,read默认是阻塞的,也就是说,你一直while的话,就算没有了数据,read就会阻塞,直到有数据来。

你可以这样,read之后先把这次数据处理了,改发送的发送,处理完毕之后然后返回再去试着read。

    
 
 

您可能感兴趣的文章:

  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • 用java做网络编程和用c做网络编程有啥区别
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 菜鸟问题:请问要在Linux操作系统下完成TCP/IP网络编程,用什么编程工具好?
  • UNIX网络编程卷1
  • 关于文件操作和Socket网络编程!
  • 求助:linux/unix网络编程
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 新手请教,linux网络编程。
  • linux环境进行网络编程的教材
  • linux下网络编程环境配置问题
  • 高分求网络编程方面的书籍
  • 求助linux下的网络编程问题
  • java的网络编程
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • 求介绍linux下的网络编程书
  • 请有经验的朋友推荐一下Linux/Nnix下网络编程方面的书,急需学习
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 有关网络编程
  • 有关linux网络编程
  • 问一个有关网络编程的问题
  • unix网络编程unp.h有关问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问unix网络编程和linux网络有什么区别
  • 网络编程中“多宿”是什么意思
  • 我的专业是网络技术,对TCP/IP有一定的了解但不精,想要学习linux下的网络编程,请大家推荐学习方法和优秀的书籍
  • 会Linux下网络编程,能找到什么样的工作,从事什么?
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • Java 网络编程有些什么内容?
  • 帮推荐一本linux 网络编程的经典书吧
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • 哪里可以免费下载Linux下C网络编程方面的好书?
  • 怎样学习JAVA网络编程?
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 我想学习linux下的网络编程。
  • 网络编程的问题
  • “精通网络编程,透彻了解TCP/IP等网络协议”--请高人诠释这句话的意思
  • java的网络编程 iis7站长之家
  • 我是来学习linux的,网络编程高手请进
  • linux下网络编程的若干问题!
  • 开始工作关于linux网络编程的工作,求大神推荐点这方面书籍
  • 学习linux网络编程需要学习些内核知识吗?
  • 我想学c/s模式的linux网络编程,那位同志可以推荐一下几个成功例子呢?谢谢!


  • 站内导航:


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

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

    浙ICP备11055608号-3