linux socket 104 错误,linux socket连接中 ERRNO错误
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.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: 32 Error: 10053
问题描述 在用Xshell连接Linux服务器时,出现错误提示"Socket error Event: 32 Error: 10053. Connection closing...Socke ...
Linux系统中errno对应的中文意思 errno.h
/usr/include/asm/errno.h #define EPERM 1 /* Operation not permitted */操作不允许 #define ENOENT 2 /* No s ...
linux fork进程请谨慎多个进程/线程共享一个 socket连接,会出现多个进程响应串联的情况。
昨天组内同学在使用php父子进程模式的时候遇到了一个比较诡异的问题 简单说来就是:因为fork,父子进程共享了一个redis连接.然后父子进程在发送了各自的redis请求分别获取到了对方的响应体. 复 ...
随机推荐
作业七:团队项目——Alpha版本冲刺阶段010
今日安排:组内成员讨论 今日进程:组内成员讨论结束,并有明确的解决办法,每个人准备实践
Codrops 教程:基于 CSS3 的精美模态窗口效果
Codrops 分享了漂亮的模态窗口效果实现方法,希望给前端开发人员提供一些创新显示对话框的启示.这个方案使用了触发按钮(或任何的 HTML 元素),在点击的时候出现一个模态窗口,带有简单的过渡(或动 ...
十年学会编程 著者: Peter Norvig 翻译: Dai Yuwen
为何人人都这么着急? 信步走进任何一家书店,你会看到名为的书,还有各 种各样类似的书: 在几天内或几小时内学会Visual Basic, Windows, In ...
HTML5 <;Canvas>;文字粒子化
文字粒子化,额或者叫小圆圈化... 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错误相关推荐
- WSL(windows subsystem for linux)安装错误:安装过程中遇到错误,但可以继续安装。组件: ‘WSL 内核‘ 错误代码: 0x80072f78解决方法
文章目录 问题来源 解决 参考 问题来源 使用管理员身份打开powershell,输入 wsl --install 之后等待安装: 结果,出现如下问题: PS C:\WINDOWS\system32& ...
- mysql 2003错误 10055_MYSQL无法连接 提示10055错误的解决方法
MYSQL无法连接 提示10055错误的解决方法 这篇文章主要介绍了MYSQL无法连接 提示10055错误的解决方法,需要的朋友可以参考下 解决方法: 总结一下,应该是连接数的问题,那么服务器上有些什 ...
- php 应用程序错误,php – 应用程序中的错误处理函数
我在编程方面比较新.我试图捕捉并显示我的应用程序中的错误.全局变量很简单: $errors = ''; class Name { /** * Validate form */ public funct ...
- python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...
- matlab检查错误 函数,检查代码中的错误和警告
调整代码分析器消息指示标记和消息 根据您在完成 MATLAB 文件时所处的阶段,您可能需要限制代码下划线标记的使用.您可以使用步骤 1 的检查代码中的错误和警告中引用的代码分析器预设执行此操作.例如, ...
- 计算机无法连接网络显示错误651,电脑连接路由器提示错误651解决办法
有的用户在设置路由器后或者突然上不去网时候出现错误代码651,这可严重影响了我们上网,简直什么都做不了.不过不用着急,下面小编带来解决办法,请大家参考! 问题描述:路由器连接后提示错误代码651 宽带 ...
- c语言中的语义错误和语法错误,C语言程序中对错误的调试
程序调试 现在我们已经可以编写一个简单的 C语言程序了,但是你可能会犯一些简单的错误.程序的错误通常叫做 bug,而发现和修正这些错误的过程叫做调试.下面有一个带有一些错误的程序,看看你能找出多少. ...
- 服务器消息823 级别24,请教 服务器: 消息 823,级别 24,状态 2,行 1 连接中的错误...
#5 也可能是数据库有问题,参考以下: 1.1 SQL SERVER数据库的检测 SQL SERVER提供了数据库检测的命令,可用DBCC CHECKDB对数据库中各个对象的分配及结构的正确性进行检测 ...
- oracle连接中出现错误ORA-12541,ORA-12514,ORA-01017的解决方法
1.出现如下错误:ORA-12541:TNS:no listener,如下图所示: 错误原因是我们没有开启Listener监听器服务,解决方法是在服务中开启这个服务,如下图所示. 2.出现如下错误:O ...
- 连接网络计算机密码错误,局域网电脑连接提示网络错误怎么解决
局域网可以实现文件管理.应用软件共享.打印机共享.工作组内的日程安排.***和传真通信服务等功能,功能十分强大,不过如果设置不恰当,内网中电脑连接网络会出现错误,具体怎么解决呢.下面是小编为大家整理的 ...
最新文章
- 项目经理的几个重要转变
- lvm创建逻辑卷简单过程
- 【Android NDK 开发】JNI 方法解析 ( JNIEnv *env 参数 )
- Python比对指定目录下的Excel数据(附源码)
- python 项目自动生成requirements.txt文件
- java实现多线程的4种方式
- SpringCloud Gateway的工作方式
- 线性降维:PCA、LDA、MDS
- 《Effective STL中文版》前言
- vue 文字转语音mp3_vue项目或网页上实现文字转换成语音播放功能
- matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
- MAC QQ聊天记录迁移
- 计算机重做系统有什么好处,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
- 宇视录像机轮巡配置步骤
- 金蝶K3案例教程应收账款前台操作
- 崇志宏 【转载】深度学习进阶规划(论文阅读顺序推荐)--东南大学
- print spooler服务经常被自动关闭,导致打印不起来
- 实用博客||工具||网页收藏导航(持续更新)
- 华为LAB实验室-书本识别
- 加拿大ee移民 最新消息 越来越难申请了!!