免费注册 查看新帖 |

Chinaunix

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

Transport endpoint is not connected问题的解决! [复制链接]

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

我用Vmware装了个linux,用socket去connect我windows的一个通信server程序
connect没有报错,但recv和send都出错,说Transport   endpoint   is   not   connected之类的
但从代码可以看出,connect没有报错
代码是这样的,非常简单,希望高手指点.
#include         
#include         
#include         
#include         
#include         
#include         
#include         
#include         
#include         
#include         
#define   PORT   56790
#define   MAXDATASIZE   1024   
int   sockfd;   
pthread_t   recthread;   
void   recmessage()   
{   
             while(1)   
             {   
                         int   numbytes;   
                         char   buf[MAXDATASIZE];   
                         if((numbytes=recv(sockfd,buf,MAXDATASIZE,0))==-1)     
                         {   
                                     perror( "recv...... ");   
                                     exit(1);   
                         }   
                         buf[numbytes]=    '\0    ';   
                         if(strcmp(buf, "exit ")==0)   
                         {   
                                     printf( "Server   is   closed.\n ");   
                                     close(sockfd);   
                                     exit(1);   
                         }   
                         printf( "Server   :%s.\n ",buf);   
             }   
}   
int   main()   
{   
             struct   hostent   *he;   
             struct   sockaddr_in   their_addr;   
             if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)   
             {   
                         perror( "socket ");   
                         exit(1);     
             }   
             their_addr.sin_family=AF_INET;   
             bzero(&their_addr,sizeof(their_addr));   
             their_addr.sin_port=htons(PORT);   
             their_addr.sin_addr.s_addr=inet_addr( "192.168.1.77 ");
             bzero(&(their_addr.sin_zero),8);   
             if(connect(sockfd,(struct   sockaddr*)&their_addr,sizeof(struct   sockaddr))==-1)   
             {   
                         perror( "connect ");   
                         exit(1);   
             }
             sleep(1);
             printf( "socket   id   is   %d ",sockfd);      
             if((pthread_create(&recthread,NULL,(void   *)recmessage,NULL))!=0)   
             {   
                         printf( "Create   thread   error!\n ");   
                         exit(1);   
             }   
             while(1)   
             {     
                         char   msg[MAXDATASIZE];   
                         scanf( "%s ",msg);   
                         if(send(sockfd,msg,strlen(msg),0)==-1)   
                         {   
                                     perror( "send ");   
                                     close(sockfd);   
                                     exit(1);   
                         }   
                         if(strcmp(msg, "exit ")==0)   
                         {   
                                     printf( "Byebye!\n ");   
                                     close(sockfd);   
                                     exit(1);   
                         }   
             }   
             return   0;   
}   
                        their_addr.sin_family=AF_INET;         
                         bzero(&their_addr,sizeof(their_addr));         
                         their_addr.sin_port=htons(PORT);           
                         their_addr.sin_addr.s_addr=inet_addr(    "192.168.1.77    ");   
                         bzero(&(their_addr.sin_zero),8);         
=============
试试改为:
                            bzero(&their_addr,sizeof(their_addr));         
                            their_addr.sin_family=AF_INET;         
                         their_addr.sin_port=htons(PORT);         
                         their_addr.sin_addr.s_addr=inet_addr(    "192.168.1.77 ");   
非常感谢,刚从windows的通讯转linux的,我一直以为是平台的搭建
原来犯下低级的逻辑错误,谢谢了
                                                               
               
               
               

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP