for(;;){
socklen_t len = sizeof(client_address);
connfd = accept(listenfd, (struct sockaddr *)&client_address, &len);
if(connfd < ){
printf("accept error: %s\n", strerror(errno));
}
printf("server get connection from %s\n", inet_ntop(AF_INET, &client_address.sin_addr, buff, sizeof(buff))); if((n = read(listenfd, message, )) == -){
printf("read error: %s\n", strerror(errno));
exit();
}
message[n] = '\0';
printf("receive the message of client: %s\n", message);
close(connfd); }

刚接触unix网络编程, 在进行简单的client/server通信时犯了低级错误, 上面的代码为server端的接收client链接请求并显示client传过来的信息, accept函数成功后返回一个内核生成的一个全新的描述符 赋值给connfd, 所以后面调用read()函数时, 第一个参数应该是connfd 而不是 listenfd。 所以代码第9行应该改为

        if((n = read(connfd, message, )) == -){ 

附:

int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);

int read(int handle, void *buf, int nbyte);

Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)的更多相关文章

  1. Socket编程--TCP服务端注意事项

    僵尸进程处理 僵尸进程和孤儿进程: 基本概念:我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预 ...

  2. Java Socket TCP编程(Server端多线程处理)

    package com; import java.io.*; import java.net.Socket; /** * Socket Client * <p> * Created by ...

  3. 套接口socket编程(Client/Server编程实例)

    基本概念 套接口也就是网络中的ID.网络通信,归根到底还是进程间通信(不同计算机上的进程间的通信).在网络中,每一个节点(计算机或路由器)都有一个网络地址,也就是IP地址. IP地址:在网络中唯一标识 ...

  4. Socket编程--并发server

    Socket地址复用 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int ...

  5. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  6. [Python_7] Python Socket 编程

    0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- "&q ...

  7. Linux C 网络编程——多线程的聊天室实现(server端)

    server端的主要功能: 实现多用户群体聊天功能(此程序最多设定为10人.可进行更改),每一个人所发送的消息其它用户均能够收到.用户能够任意的增加或退出(推出以字符串"bye"实 ...

  8. socket编程学习step1

    socket学习参考链接,赞一个:http://blog.csdn.net/hguisu/article/details/7445768 sockets(套接字)编程有三种,流式套接字(SOCK_ST ...

  9. <转>Go语言TCP Socket编程

    授权转载: Tony Bai 原文连接: https://tonybai.com/2015/11/17/tcp-programming-in-golang/ Golang的主要 设计目标之一就是面向大 ...

随机推荐

  1. 【P3572】little bird(单调队列+DP)

    一眼看上去这个题就要DP,可是应该怎么DP呢,我们发现,数据范围最多支持O(NlogN),但是这种DP貌似不怎么有,所以应该是O(N)算法,自然想到单调队列优化DP. 然后我们先考虑如果不用单调队列应 ...

  2. php-fpm docker 容器 搭建

    继续上一篇文章(centos 7 容器的搭建) 下面构建一个php-fpm镜像: dockerfile 文件如下: # # MAINTAINER # DOCKER-VERSION # # Docker ...

  3. ML 逻辑回归 Logistic Regression

    逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...

  4. db2数据导出导入del与ixf格式区别

    之前做数据迁移的时候遇到乱码的一些坑,总结一下.  一般导入导出: db2 export to /home/xxxx.del of del select * from tablename db2 im ...

  5. 【Swoole】简单安装与创建TCP服务器

    pecl install swoole PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据 ...

  6. java:管道流(线程间管道流)

    class Send implements Runnable{ PipedOutputStream pos = null; public Send() { this.pos = new PipedOu ...

  7. 高性能Js—数据存取

    数据存取 JavaScript中四中基本的数据存取位置 字面量:不存于某个变量内 本地变量:var定义的 数组元素 对象成员 字面量.全局变量读取速度 > 数组项.对象成员 .因为局部变量存在于 ...

  8. Xcode 查找 TODO 清单

    在 Xcode 中按 Shift+Command+F,显示在项目中查找窗口,选择按正则表达式查找(Find > Regular Expression): TODO:  //\s*\bTODO\s ...

  9. KVM-克隆

    kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为Centos 6.4X64. (1) KVM主机本机虚拟机直接克隆. (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆( ...

  10. hdoj-1036-Average is not Fast Enough!(水题,坑)

     题目链接:Average is not Fast Enough! #include <iostream> #include <cstring> #include <st ...