Connection refused:应该是连接的服务端没有启动或者连接端口错误,可以用如下代码测试

client端:

#include

#include /* See NOTES */

#include

#include

#include

#include

#include

#include

#include

#define PORT 1234

#define SERVER "10.1.70.21"

int main()

{

int fd = socket(AF_INET, SOCK_STREAM, );

int nfd;

int ret;

struct sockaddr_in server_addr, client_addr;

bzero(&server_addr, sizeof(server_addr));

server_addr.sin_family =AF_INET;

server_addr.sin_port = htons(PORT);

inet_pton(AF_INET, SERVER, &server_addr.sin_addr);

//bind(fd, (struct sockaddr *)&server_addr, sizeof(server_addr));

errno = ;

ret = connect(fd, (struct sockaddr*)&server_addr, sizeof(server_addr));

if(ret == -)

{

perror("connect: ");

}

char buf[];

while()

{

bzero(buf, );

ret = read(STDIN_FILENO, buf, sizeof(buf));

printf("ret: %d, buf: %s", ret, buf);

ret = write(fd, buf, ret);

printf("ret:%d\n", ret);

if(ret < )

{

perror("write error");

}

ret = read(fd, buf, );

if(ret < )

{

perror("ret");

}

write(STDOUT_FILENO, buf, ret);

}

return ;

}

server端:

#include

#include /* See NOTES */

#include

#include

#include

#include

#include

#include

//server端监听端口

#define PORT 3388

int main()

{

int fd = socket(AF_INET, SOCK_STREAM, );//创建一个socket

int nfd;

struct sockaddr_in server_addr, client_addr;

bzero(&server_addr, sizeof(server_addr));

server_addr.sin_family =AF_INET; //ipv4

server_addr.sin_port = htons(PORT);//端口

server_addr.sin_addr.s_addr = htonl(INADDR_ANY);//监听本主机的所有ip

bind(fd, (struct sockaddr *)&server_addr, sizeof(server_addr));//绑定

listen(fd, );//监听socket连接,30为三次握手队列大小

char buf[];

// 把server_addr.sin_addr的地址转换成字符串(点分十进制表示)

inet_ntop(AF_INET, &server_addr.sin_addr, buf, sizeof(buf));

printf("%s\n", buf);//一般输出为0.0.0.0

pid_t pid;

while()

{

bzero(buf, sizeof(buf));//buf清零,相当于memset(buf, 0, sizeof(buf));

socklen_t len= sizeof(client_addr);

nfd = accept(fd, (struct sockaddr*)&client_addr, &len);//接收socket连接

inet_ntop(AF_INET, &client_addr.sin_addr, buf, sizeof(buf));//获取socket连接客户端的ip

printf("accept connetc %s port %d\n", buf, ntohs(client_addr.sin_port));

pid = fork();

//子进程

if(pid == )

{

while()

{

int ret = read(nfd, buf, sizeof(buf));

if(ret <= )

{

perror("ret");

return ;

}

write(STDOUT_FILENO, buf, ret);

write(nfd, buf, ret);

}

}

}

return ;

}

Linux socket 编程中存在的五个隐患

前言:         Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是   开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它 ...

11&period;1、socket连接中的粘包、精确传输问题

粘包: 发生原因: 当调用send的时候,数据并不是即时发给客户端的.而是放到了系统的socket发送缓冲区里,等缓冲区满了.或者数据等待超时了,数据才会发送,所以有时候发送太快的话,前一份数据还没有 ...

Linux Socket 编程简介

在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket.本文以一个简单的 ...

socket连接和http连接的区别

socket连接和http连接的区别 HTTP协议:简单对象访问协议,对应于应用层  ,HTTP协议是基于TCP连接的 tcp协议:    对应于传输层 ip协议:     对应于网络层 TCP/IP ...

Linux Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠s ...

linux网络编程中阻塞和非阻塞socket的区别

读操作 对于阻塞的socket,当socket的接收缓冲区中没有数据时,read调用会一直阻塞住,直到有数据到来才返 回.当socket缓冲区中的数据量小于期望读取的数据量时,返回实际读取的字节数.当 ...

Linux Xshell连接Linux服务器时报错Socket error Event&colon; 32 Error&colon; 10053

问题描述 在用Xshell连接Linux服务器时,出现错误提示"Socket error Event: 32 Error: 10053. Connection closing...Socke ...

Linux系统中errno对应的中文意思 errno&period;h

/usr/include/asm/errno.h #define EPERM 1 /* Operation not permitted */操作不允许 #define ENOENT 2 /* No s ...

linux fork进程请谨慎多个进程&sol;线程共享一个 socket连接,会出现多个进程响应串联的情况。

昨天组内同学在使用php父子进程模式的时候遇到了一个比较诡异的问题 简单说来就是:因为fork,父子进程共享了一个redis连接.然后父子进程在发送了各自的redis请求分别获取到了对方的响应体. 复 ...

随机推荐

作业七:团队项目——Alpha版本冲刺阶段010

今日安排:组内成员讨论 今日进程:组内成员讨论结束,并有明确的解决办法,每个人准备实践

Codrops 教程:基于 CSS3 的精美模态窗口效果

Codrops 分享了漂亮的模态窗口效果实现方法,希望给前端开发人员提供一些创新显示对话框的启示.这个方案使用了触发按钮(或任何的 HTML 元素),在点击的时候出现一个模态窗口,带有简单的过渡(或动 ...

十年学会编程 著者: Peter Norvig 翻译: Dai Yuwen

为何人人都这么着急? 信步走进任何一家书店,你会看到名为的书,还有各 种各样类似的书: 在几天内或几小时内学会Visual Basic, Windows, In ...

HTML5 &lt&semi;Canvas&gt&semi;文字粒子化

文字粒子化,额或者叫小圆圈化... 1

H5 拖放事件详解

拖放事件 H5的拖放事件提供了多个接口: 1.drag:当元素或者选中的文本被拖动时触发(每几百毫秒触发一次),应用在被拖拽元素上 2.dragend:当拖动操作结束时触发(通过释放鼠标按钮或者点击转 ...

P2278 操作系统

P2278 操作系统 题目描述 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则优先级越高. ...

定时删除elasticsearch索引

从去年搭建了日志系统后,就没有去管它了,最近发现大半年各种日志的index也蛮多的,就想着写个脚本定时清理一下,把一些太久的日志清理掉. 脚本思路:通过获取index的尾部时间与我们设定的过期时间进行 ...

ruby Encoding

一. 查看ruby支持的编码 Encoding.name_list 二. 搜索编码 Encoding.find('US-ASCII') #=> US-ASCII,不存在则抛出异常 三. __EN ...

Etyma01 ced ceed cess

一. etyma ['ɛtə,mə] ced.ceed.cess -> go -> 行走,前进 二.for instance 1. precede=pre+ced+e pre- 在前 2. ...

VR技术在数据中心3D机房中的应用 (下)

VR技术在数据中心3D机房中的应用 (下) 前面给大家简单科普了一下VR的硬件设备以及VR在各个领域的应用,是不是觉得非常高大上?千言万语概括成一句话,VR能给用户带来前所未有的沉浸感和交互方式,让人 ...

linux socket 104 错误,linux socket连接中 ERRNO错误相关推荐

  1. WSL(windows subsystem for linux)安装错误:安装过程中遇到错误,但可以继续安装。组件: ‘WSL 内核‘ 错误代码: 0x80072f78解决方法

    文章目录 问题来源 解决 参考 问题来源 使用管理员身份打开powershell,输入 wsl --install 之后等待安装: 结果,出现如下问题: PS C:\WINDOWS\system32& ...

  2. mysql 2003错误 10055_MYSQL无法连接 提示10055错误的解决方法

    MYSQL无法连接 提示10055错误的解决方法 这篇文章主要介绍了MYSQL无法连接 提示10055错误的解决方法,需要的朋友可以参考下 解决方法: 总结一下,应该是连接数的问题,那么服务器上有些什 ...

  3. php 应用程序错误,php – 应用程序中的错误处理函数

    我在编程方面比较新.我试图捕捉并显示我的应用程序中的错误.全局变量很简单: $errors = ''; class Name { /** * Validate form */ public funct ...

  4. python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  5. matlab检查错误 函数,检查代码中的错误和警告

    调整代码分析器消息指示标记和消息 根据您在完成 MATLAB 文件时所处的阶段,您可能需要限制代码下划线标记的使用.您可以使用步骤 1 的检查代码中的错误和警告中引用的代码分析器预设执行此操作.例如, ...

  6. 计算机无法连接网络显示错误651,电脑连接路由器提示错误651解决办法

    有的用户在设置路由器后或者突然上不去网时候出现错误代码651,这可严重影响了我们上网,简直什么都做不了.不过不用着急,下面小编带来解决办法,请大家参考! 问题描述:路由器连接后提示错误代码651 宽带 ...

  7. c语言中的语义错误和语法错误,C语言程序中对错误的调试

    程序调试 现在我们已经可以编写一个简单的 C语言程序了,但是你可能会犯一些简单的错误.程序的错误通常叫做 bug,而发现和修正这些错误的过程叫做调试.下面有一个带有一些错误的程序,看看你能找出多少. ...

  8. 服务器消息823 级别24,请教 服务器: 消息 823,级别 24,状态 2,行 1 连接中的错误...

    #5 也可能是数据库有问题,参考以下: 1.1 SQL SERVER数据库的检测 SQL SERVER提供了数据库检测的命令,可用DBCC CHECKDB对数据库中各个对象的分配及结构的正确性进行检测 ...

  9. oracle连接中出现错误ORA-12541,ORA-12514,ORA-01017的解决方法

    1.出现如下错误:ORA-12541:TNS:no listener,如下图所示: 错误原因是我们没有开启Listener监听器服务,解决方法是在服务中开启这个服务,如下图所示. 2.出现如下错误:O ...

  10. 连接网络计算机密码错误,局域网电脑连接提示网络错误怎么解决

    局域网可以实现文件管理.应用软件共享.打印机共享.工作组内的日程安排.***和传真通信服务等功能,功能十分强大,不过如果设置不恰当,内网中电脑连接网络会出现错误,具体怎么解决呢.下面是小编为大家整理的 ...

最新文章

  1. 项目经理的几个重要转变
  2. lvm创建逻辑卷简单过程
  3. 【Android NDK 开发】JNI 方法解析 ( JNIEnv *env 参数 )
  4. Python比对指定目录下的Excel数据(附源码)
  5. python 项目自动生成requirements.txt文件
  6. java实现多线程的4种方式
  7. SpringCloud Gateway的工作方式
  8. 线性降维:PCA、LDA、MDS
  9. 《Effective STL中文版》前言
  10. vue 文字转语音mp3_vue项目或网页上实现文字转换成语音播放功能
  11. matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
  12. MAC QQ聊天记录迁移
  13. 计算机重做系统有什么好处,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
  14. 宇视录像机轮巡配置步骤
  15. 金蝶K3案例教程应收账款前台操作
  16. 崇志宏 【转载】深度学习进阶规划(论文阅读顺序推荐)--东南大学
  17. print spooler服务经常被自动关闭,导致打印不起来
  18. 实用博客||工具||网页收藏导航(持续更新)
  19. 华为LAB实验室-书本识别
  20. 加拿大ee移民 最新消息 越来越难申请了!!

热门文章

  1. 【转】缺少servlet-api.jar包
  2. 读取图像中任意点的像素值
  3. 【OpenCV学习笔记】【教程翻译】二(车牌识别算法框架)
  4. 用虚拟串口进行串口调试
  5. Python弹球游戏(tkinter模块编写)
  6. 机器学习Scikit-Learn基本操作实战
  7. Linux安装PHP环境LNMP
  8. windows下Dos命令行设置代理
  9. 灵修---士师记第9章
  10. vue mysql交互_几种vue的数据交互形式