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

急!socket编程出现了问题!

    来源: 互联网  发布时间:2016-03-16

    本文导语:  运行时服务器端显示  read error : Transport endpoint is not connected 服务器端程序: #include  #include  #include  #include  #include  #include  #include  #include  #define      MYPORT 4000 #define BACKLOG 10 int main(int argc, char **argv...

运行时服务器端显示
 read error
: Transport endpoint is not connected

服务器端程序:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define      MYPORT 4000
#define BACKLOG 10

int main(int argc, char **argv)
{
        char buffer[1024];
        int sockfd,new_fd      ;
        int sin_size;
        struct sockaddr_in my_addr ;
        struct sockaddr_in their_addr ;
        if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
        {
        printf("create sockn");
        return -1;
     }
        else
        {
      my_addr.sin_family= AF_INET ;
      my_addr.sin_port= htons(MYPORT);
      my_addr.sin_addr.s_addr=inet_addr("192.168.1.5") ;
      bzero(&(my_addr.sin_zero),8);
      if (bind (sockfd, (struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
        {
                printf("bind errorn");
                return -1 ;
        }
      listen(sockfd, BACKLOG);
      while (1)
        {
                sin_size = sizeof(struct sockaddr_in);
                new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size);
                if(new_fd == -1)
                {
                        printf("accept errorn");
                }
                char *msg = "Hello! World! ";
                int len, bytes_sent;
                len = strlen(msg);
                bytes_sent = send(new_fd, msg, len, 0);
                printf("okn");
                int nbytes;
                if((nbytes=read(sockfd,buffer,1024))==-1)
                {
                        perror("read errorn");
                }
                buffer[nbytes]='';
                printf("I have received:%sn",buffer);
                close(new_fd);
        }
                close(sockfd);
        }
}

客户端程序:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define MYPORT 4000
#define BACKLOG 10
int main(int argc, char **argv)
{
        int sockfd;
        char buffer[1024];
        struct sockaddr_in server_addr;
        struct hostent *host;
        int portnumber,nbytes;
        if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
        {
        printf("socket errorn");
        return -1 ;
        }
        bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
        server_addr.sin_port=htons(MYPORT);
        server_addr.sin_addr.s_addr= inet_addr("192.168.1.5") ;
        if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
        {
        perror("connect errorn");
        return -1;
        }
        if((nbytes=read(sockfd,buffer,1024))==-1)
        {
        printf("read errorn");
        return -1 ;
        }
        buffer[nbytes]='';
        printf("I have received:%sn",buffer);
        char *msg = "Hello! World! ";
        int len, bytes_sent;
        len = strlen(msg);
        bytes_sent = send(sockfd, msg, len, 0);
        printf("okn");
        close(sockfd);
}
                                                 
                                                      


|
服务器端去读的时候,客户端已经关闭连接了.


 bytes_sent = send(sockfd, msg, len, 0); 
        printf("okn"); 
        close(sockfd); 
改成

 bytes_sent = send(sockfd, msg, len, 0); 
sleep(1);
        printf("okn"); 
        close(sockfd); 

    
 
 

您可能感兴趣的文章:

  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • socket 编程时,write的写入的数据大于socket缓冲区,会有什么结果??
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • 关于文件操作和Socket网络编程!
  • linux下socket编程问题!
  • socket编程 中的bind问题
  • socket编程--htons
  • 急!!请教关于linux socket编程的一个问题!!
  • 急!关于SOCKET编程,在线等待!
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • 多进程socket编程问题
  • 问一个socket编程问题,急~~~
  • 求教!为何在socket编程中调recv函数无法阻塞?
  • 请教一个socket编程问题
  • 求助!!linux下socket编程
  • socket编程,使用recvfrom()函数监听问题。
  • sco unix下socket编程的问题,请大家帮忙
  • 我的ping程序怎么老是出现Socket operation on non-socket
  • ftp连接出现socket错误=#10054的解决方法
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 运行sipp 出现 Unable to bind main socket 错误
  • socket下调用write后出现:Broken pipe错误
  • linux socket程序,出现closed by peer问题
  • socket网络编程中出现Illegal seek问题
  • 使用tomcat出现的问题(socket write error),请教大家
  • windows 和 linux 用socket通信出现的问题
  • 连续创建和关闭1024个socket就会出现问题,错误码24,怎么办?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux socket问题。。怎样获得已帮定特定port的一个套接字socket
  • 关于socket概念的理解问题!
  • 你是否可以回答Socket的问题?数据先后问题
  • Socket的问题
  • socket accept问题,大家指教。
  • socket客户端程序的问题
  • 关于多网口socket通信的简单问题
  • fgets用在SOCKET流上的问题
  • linux socket fd 写阻塞问题
  • linux下用socket实现多进程间通信问题?
  • 请问socket方面的问题
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • windows 与 linux socket 编程问题
  • 问个linux下raw socket的问题
  • Socket的问题?
  • 关于socket通讯的一个问题
  • socket read返回问题
  • 奇怪问题,关于Socket的!
  • C++ socket挂钩问题
  • FIFO和Socket通信的并发效率问题
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3