E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux网络编程
嵌入式
Linux网络编程
,UDP循环服务器,sendto(),recvfrom()
文章目录1,UDP循环服务器模型:2,UDP的使用场景3,UDP数据发送和接受sendto()、recvfrom()4,UDP循环服务器示例(可同时连接多个客户端)4.1,头文件net.h4.2,客户端代码client.c4.3,服务器端代码server.c1,UDP循环服务器模型:socket(...);bind(...);while(1){recvfrom(...);process(...);
nice梦醉天宇
·
2020-07-02 11:22
嵌入式Linux-网络编程
linux网络编程
中的字节序转换
首先解释一下字节序的概念,所谓字节序是指多字节数据的存储顺序,比如0x1234要放在0000H和0001H两存储单元,有两种存储方式:大端格式为[0000H]=12,[0001H]=34和小端格式为[0000H]=34,[0001H]=12。大端格式:将高位字节数据存储在低地址,低位字节数据存储在高地址小端格式:将高位字节数据存储在高地址,低位字节数据存储在低地址如何自身主机的字节序呢?看如下一个
生命的紫金颜色
·
2020-07-02 08:26
linux网络编程
epoll的应用方式
1、epoll介绍在
linux网络编程
中,很长时间使用select做事件触发。
风云来
·
2020-07-02 05:30
网络
Linux网络编程
杂项
一.MSG_NOSIGNALRequestsnottosendSIGPIPEonerrorsonstreamorientedsocketswhentheotherendbreakstheconnection.TheEPIPEerrorisstillreturned.当连接断开,如果A正在发送数据,send()的返回值会有反映,并向系统发送一个异常消息SIGPIPE。如果不作处理,系统会出Broke
飞信天下
·
2020-07-02 01:18
Linux
网络编程
Linux网络编程
基础 --- IP地址和端口号
1.引言网络通信的本质仍然是进程间通信。以前,我们在学习进程间通信的时候(共享内存、管道、以及用于同步的信号量),并没有提到过网络IPC,那时候是因为基础不太够。另一方面,之前讲的进程间通信,所有的进程都位于同一个操作系统上。然而网络通信跨越了这条“鸿沟”,穿越了世俗的界限,将进程间通信扩展到了不同的计算机上。在同一个操作系统上,不同进程之间可以使用进程的pid号进行唯一标识。但是如果在不同计算机
Clearfix_Xia
·
2020-07-01 21:32
Linux 网络编程及底层实现过程
但我们用网络术语将它称为“套接字”(见
Linux网络编程
),但是我习惯叫“套接口”,可能是受Unix网络编程的影响。
天天向上_好好学习
·
2020-07-01 20:24
开发
网络
Linux网络编程
-网络字节序转换
网络字节序:我们应该已经知晓,内存中的多字节数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件内部的偏移地址也有大端和小端之分。同样,网络数据流同样也有大端小端之分。例如:发送端主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出,接受端主机把从网络上接受到的数据存储在接受缓冲区中,也是按内存地址从低到高的顺序保存,所以,网络数据的地址应该是:先发出的数据是低地址,后发出的数
zhongcanw
·
2020-07-01 07:52
Linux修服务器编程
TCP/UDP文章
学习
Linux网络编程
(1)这篇教程是用来介绍在Linux下编写网络程序的.
dllbl
·
2020-07-01 02:07
Linux下C编程
Linux网络编程
——I/O复用之select详解
一、I/O复用概述I/O复用概念:解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调I/O复用使用的场合:1.当客户处理多个描述符(通常是交互式输入、网络套接字)时,必须使用I/O复用。2.tcp服务器既要处理监听套接字,又要处理已连接套接字,一般要使用I/O复用。3.如果一个服务器既要处理tcp又要处理udp,一般要使用I/O复用。4.如果一个服务器要处理多
ai___believe
·
2020-07-01 00:42
linux网络编程
基础-常用函数错误处理封装
my.c#include#include#include#includevoidperr_exit(constchar*s){perror(s);exit(1);}//***************************网络*********************************intAccept(intfd,structsockaddr*addr,socklen_t*addrlen)
zzyczzyc
·
2020-06-30 21:26
linux网络编程
Linux编程获取本机IP地址的几种方法
在进行
Linux网络编程
时,经常会需要获取本机IP地址,除了常规的读取配置文件外,本文罗列几种个人所知的编程常用方法,仅供参考,如有错误请指出。
shu.zhong
·
2020-06-30 16:56
linux网络编程
入门
CSDN作者:Andoubi原文链接:http://blog.csdn.net/andoubi/article/details/51778988服务端代码server.c#include#include#include#include#include#include#defineportnum3333//随便定义一个端口intmain(){intsockfd,new_fd;structsockad
zhaoyuxia517
·
2020-06-30 15:42
linux
C/C++
linux网络编程
socket
Linux网络编程
——无连接和面向连接协议的区别
Linux网络编程
——无连接和面向连接协议的区别网络编程中最基本的概念就是面向连接(connection-oriented)和无连接(connectionless)协议。
「已注销」
·
2020-06-30 05:13
LINUX网络编程
linux网络编程
之TCP三次握手和四次挥手
1.在TCP连接的过程中,有三个阶段,分别是建立连接,传递数据和断开连接,通讯时序图如下所示:2.结合TCP数据报格式分析建立连接的三次握手1)首先客户端发送一个带有SYN标志的TCP报文给服务器端,询问服务器端是否可以通信。其中32位序号为1000,数据大小为0,数据报文的最大长度为1460;2)服务器端接收到客户端的数据,回应客户端,想客户端发送一个报文,同时携带了SYN和ACK标志,其中SY
smile_sambery
·
2020-06-30 04:03
网络编程
linux网络编程
——TCP浅析及socket编程实例
1、BS和CS(1)CS架构:(clientserver,客户端服务器架构)(2)BS架构:(broswerserver,浏览器服务器架构)2、关于TCP理解的重点(1)TCP协议工作在传输层,对上服务socket接口,对下调用IP层。(2)TCP协议面向连接,通信前必须先3次握手建立连接关系后才能开始通信。(3)TCP协议提供可靠传输,不怕丢包、乱序等。3、TCP如何保证可靠传输(1)TCP在传
笑在山水间
·
2020-06-30 04:32
Linux
网络编程
嵌入式
linux网络编程
常见异常
socket错误码:EINTR:4系统调用的阻塞操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。例如:系统调用read阻塞,因为信号导致阻塞的函数调用被中断只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interruptedsystemcall,操作也应该继续。如果recv的返回值为0,那
奔跑中的老男孩
·
2020-06-30 02:18
网络编程
校招操作系统知识总结
同时与在
linux网络编程
中也涉及。1.请自己设计一下如何采用单线程的方式处理高并发在单线程模型中,可以采用I/O复用来提高单线程处理多个请求的能力,然后再采用事件驱动模型,基于异步回调来处理事件来。
wwxy261
·
2020-06-29 22:47
算法
【Linux】:网络编程
(一)
Linux网络编程
–网络知识介绍
Linux网络编程
–网络知识介绍客户端和服务端网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的–客户端和服务器端.客户端在网络程序中,如果一个程序主动和外面的程序通信
MrDd
·
2020-06-29 06:45
Linux网络编程
——I/O复用函数之epoll
一、epoll概述epoll是在2.6内核中提出的,是之前的select()和poll()的增强版本。相对于select()和poll()来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。二、epoll操作过程需要的四个接口函数四接口函数分别是:#includein
ai___believe
·
2020-06-27 21:56
很全的
linux网络编程
技巧
1.
LINUX网络编程
基础知识11.1.TCP/IP协议概述11.2.OSI参考模型及TCP/IP参考模型11.3.TCP协议31.4.UDP协议51.5.协议的选择62.网络相关概念62.1.socket
相太阳
·
2020-06-27 18:10
C++与
Linux网络编程
实战
C++与
Linux网络编程
实战序言:最近老板给我的这个课题中,我的主要工作是进行论文中所设计的算法与整个系统的原型implementation与大规模实际场景的simulation。
vingstar
·
2020-06-27 11:28
网络编程
编程
Unix
Linux下网络编程5种实现(源代码)
学习整理
Linux网络编程
5种服务器模型多线程、多进程、Select、Poll、Epoll实现源代码,注释较为详细,方便初学者学习。
Tangocc
·
2020-06-27 06:39
网络编程
Linux
基础知识
linux网络编程
笔记(1)
最近参加了几场实习生招聘的笔试面试发现好多学过的东西让回答还一时不知道从何说起决定从现在开始要注意做好一些知识管理/代码管理等方面的东西做一些复习笔记以供以后巩固知识同时也希望广大牛人们给予指点先从
linux
stu-8
·
2020-06-27 04:34
Linux网络编程
--TCP并发服务器
一.并发服务器模型常用的TCP服务器模型,我们上节写的是TCP循环服务器模型,这种模型很大的弊端就是没办法实现并发,在此基础上进行优化,就出现了多线程和多进程的服务器。他们的解决思路都是相同的,他们的数据处理都是单独在开一个线程或者进程进行处理。多线程和多进程的服务器模型是比较常见的,他们之间各具优势,需要根据不同应用场景进行选择。二.多线程并发实例客户端的实现和之前的代码相同,不做重点关注。se
EmbededCoder
·
2020-06-27 03:56
Net
linux网络编程
之用socket实现简单客户端和服务端的通信(基于TCP)
一、介绍基于TCP协议通过socket实现网络编程常用API1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解地址分别是:1)、http://blog.csdn.net/u011068702/article/details/564799272)、http://blog.csdn.net/u011068702/article/details/5648
chen.yu
·
2020-06-27 00:48
Linux
网络编程
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇
最近遇到一个线上报警:服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接,在解决过程中,通过查阅经典教材和技术文章,加深了对TCP网络问题的理解。作为笔记,记录于此。备注:本文主要介绍TCP编程中涉及到的众多基础知识,关于实际工程中对由TIME_WAIT引发的不能建立新连接问题的解决方法将在下篇笔记中给出。1.实际问题初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处
slvher
·
2020-06-26 13:49
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇
上篇笔记主要介绍了与TIME_WAIT相关的基础知识,本文则从实践出发,说明如何解决文章标题提出的问题。1.查看系统网络配置和当前TCP状态在定位并处理应用程序出现的网络问题时,了解系统默认网络配置是非常必要的。以x86_64平台Linuxkernelversion2.6.9的机器为例,ipv4网络协议的默认配置可以在/proc/sys/net/ipv4/下查看,其中与TCP协议栈相关的配置项均以
slvher
·
2020-06-26 13:18
linux网络编程
学习笔记之二 -----错误异常处理和各种碎碎(更新中)
errno在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno(errno.h),如socket(),bind(),accept(),listen()。erron存放一个正整数来保存上次出错的错误值。对线程而言,每个线程都有专用的errno变量,不必考虑同步问题。strerrorconvertstoEnglish(Note:usestrerror_rforthr
simon_夏
·
2020-06-26 10:31
Linux种种
linux网络编程
学习笔记之六 -----I/O多路复用服务端
多进程和多线程的目的是在于最大限度地利用CPU资源,当某个进程不需要占用太多CPU资源,而是需要I/O资源时,可以采用I/O多路复用,基本思路是让内核把进程挂起,直到有I/O事件发生时,再把控制返回给程序。这种事件驱动模型的高效之处在于,省去了进程和线程上下文切换的开销。整个程序运行在单一的进程上下文中,所有的逻辑流共享整个进程的地址空间。缺点是,编码复杂,而且随着每个逻辑流并发粒度的减小,编码复
simon_夏
·
2020-06-26 10:31
Linux种种
linux网络编程
学习笔记之四 -----多线程并发服务端
相对于使用进程实现并发,用线程的实现更加轻量。每个线程都是独立的逻辑流。线程是CPU上独立调度运行的最小单位,而进程是资源分配的单位。当然这是在微内核的操作系统上说的,简言之这种操作系统的内核是只提供最基本的OS服务,更多参看点击打开链接每个线程有它自己的线程上下文,包括一个唯一的线程ID(linux上实现为unsignedlong),栈,栈指针,程序计数器、通用目的寄存器和条件码,还有自己的信号
simon_夏
·
2020-06-26 10:31
Linux种种
linux网络编程
系列(二)--OSI七层模型和TCP-IP四层模型
1.ISO七层网络模型为使不同计算机厂家之间的计算机能够互相通信,以便在更大的范围内建立计算机网络,国际标准化组织ISO在1981年正式推出了一个网络系统结构--OSI七层网络模型,此后各大计算机厂商迅速向它靠拢,大大推动了计算机网络的发展。OSI七层网络模型分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。1.1应用层应用层是最靠近用户的OSI层,这一层为用户的应用程序(例如电
晟夏的叶
·
2020-06-26 09:59
Netty搭建Socket服务器(第一天学习)
opengl或者提别的复杂的图形算法,否则你不得不承认你只会写一些逻辑的显示,至于那些现在流行的,高并发,大数据,人工智能就会越来越远,于是我准备学习高并发的相关知识,顺便也可以总结一下以前学习的c的
linux
三只小熊66
·
2020-06-26 07:19
Netty
Linux网络编程
五种I/O 模式及select、epoll理解
五种I/O模式:【1】阻塞I/O(Linux下的I/O操作默认是阻塞I/O,即open和socket创建的I/O都是阻塞I/O)【2】非阻塞I/O(可以通过fcntl或者open时使用O_NONBLOCK参数,将fd设置为非阻塞的I/O)【3】I/O多路复用(I/O多路复用,通常需要非阻塞I/O配合使用)【4】信号驱动I/O(SIGIO)【5】异步I/O一般来说,程序进行输入操作有两步:1.等待有
ryan_jianjian
·
2020-06-26 06:58
网络编程通信
Linux网络编程
:计算机网络体系结构概述详解
↵目录一、计算机网络体系结构的形成1.引入2.体系结构形成的历史3.OSI失败原因二、协议与划分层次1.协议的概念2.划分层次与好处三、具有四层协议的TCP/IP体系结构1.TCP/IP体系结构2.模拟传递过程一、计算机网络体系结构的形成1.引入我们知道连接在网络上的两台计算机要相互传送文件,必须要有一条传送数据的通路。但这远远不够,还需要以下的工作:(1)发起通信的计算机必须将数据通信的通路激活
内外皆秀
·
2020-06-26 02:47
【
Linux网络编程
】TCP的三次握手、四次挥手
TCP是传输层的主机对主机控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。三次握手三次握手是俩台主机建立连接的过程,建立之前的初始状态是:client处于connect状态,server处于listen的状态。第一次握手:client主动发起SYN(syn=x)报文,此时client进入SYN_SENT状态,等待server确认。第二次握手:server收到SYN报文后对其进行确认(a
Keen_hard
·
2020-06-26 01:14
Linux网络编程
Linux网络编程
总结
网络编程1、intsocket(intdomain,inttype,intprotocol)domain:说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等).AF_UNIX只能够用于单一的Unix系统进程间通信,而AF_INET是针对Internet的,因而可以允许在远程主机之间通信(当我们mansocket时发现domain可选项是PF_而不是AF_,因为glibc是p
zipfeel
·
2020-06-25 16:26
#
linux操作系统
TCP 可靠传输机制详解
其中很多内容都是来自于《计算机网络》,《
Linux网络编程
》,《TCP/IP详解》等书籍。首先可以从TCP协议思维导图看到本文的大致内容。
Tyler_Zx
·
2020-06-25 14:44
计算机网络
Linux网络编程
学习笔记(三)
一、1.粘包问提产生的原因:(1)应用进程发的消息大于套接口的发送缓冲区大小,会导致大于的部分第二次发,一条消息被分成两份(2)TCP最大段MSS限制,导致对消息分割(3)链路层最大传输单元MTU,超过MTU会在IP层分组(4)流量控制、拥塞控制、TCP延迟发送等2.粘包问题的解决方案本质是在应用层维护消息与消息边界1.定长包2.包尾加\r\n3.包头长度+包尾长度(包头长度固定,接收时可以算出包
虚心学习进步
·
2020-06-25 08:18
计算机网络
linux网络编程
linux网络编程
(完整版)
之间在网上看到很多网络编程都是一个一个demo,今天我把之前学到的汇总起来,希望大家可以进行补充。我理解的网络通信分为4种1,udp客户端2,udp服务端3,tcp客户端4,tcp服务端线程中我使用过两种方式编程,一种是经典函数式编程加上标志位,如下:while(1){server_init();client_init();sock_send();select_handler();}其中各函数里面
当霸气遇到侧漏
·
2020-06-25 05:51
嵌入式
Linux网络编程
中connect()、listen()和accept()与TCP三次握手的关系
Linux网络编程
开发分为服务器端和客户端两个部分:对于服务器端的流程——类似于接电话过程socket()[找到一个可以通话的手机]----->bind()[插入一个固定号码]------>listen
MagnumLu
·
2020-06-25 03:40
Linux
linux网络编程
之异步通信机制
内核通过使用异步I/O,在某一进程需要处理的事件发生(例如,接收到新的连接请求)时,向该进程发送一个SIGIO信号。这样,应用进程不需要不停地等待着某些事件的发生,而可以往下运行,以完成其他的工作。只有收到从内核发来的SIGIO信号时,才去处理它(例如,读取数据)。异步I/O:使用fcntl()函数实现高效率的异步I/O,首先必须试用fcntl的F_SETOWN命令,使套接字归属于当前进程,以内核
宗师之路
·
2020-06-25 03:06
嵌入式Linux应用程序学习
Linux网络编程
网络开发一、网络采用分层的思想:1.每一层实现不同的功能,对上册的数据做透明传输2.每一层向上层提供服务,同时使用下层提供的服务各层典型的协议:1.网络接口与物理层MAC地址:48位全球唯一,网络设备的身份标识ARP/RARP:ARP:IP地址----->MAC地址RARP:MAC地址--->IP地址PPP协议:拨号协议(GPRS/3G/4G)网络层:IP地址IP:Internetprotocol
这个冬季不太冷
·
2020-06-25 02:21
TCP与UDP编程
IO多路复用
TCP
IP协议原理
网络编程扩展
Linux高并发服务器解决方案
Linux高并发服务器案例演示在网络通信中,我们常常的服务器经常会受到成千上万的请求提示,而电脑会根据请求建立相对应的socket链接,但是接触过
Linux网络编程
的人都知道,Linux链接和客户端建立连接
朱超迪
·
2020-06-24 21:32
Linux使用
Linux网络编程
socket错误分析
socket错误码:EINTR:4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interruptedsystemcall,操作也应该继续。如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束。ETIMEOUT:1101、操
nellson
·
2020-06-24 17:58
网络编程
Linux网络编程
socket选项之SO_LINGER
Linux网络编程
中,socket的选项很多.其中几个比较重要的选项有:SO_LINGER(仅仅适用于TCP,SCTP),SO_REUSEADDR.SO_LINGER在默认情况下,当调用close关闭socke
luckxu
·
2020-06-24 09:09
Linux网络编程
Proxy源代码分析
Proxy源代码分析--谈谈如何学习
linux网络编程
本文出自:http://www.china-pub.com作者:李培源(2001-08-1012:00:00)Linux是一个可靠性非常高的操作系统
lrping
·
2020-06-24 09:15
谈一谈前两个星期写网络聊天室项目的感受
我先介绍这个聊天室项目,这个项目采用C/S架构,
Linux网络编程
(线程),基于Select实现多个客户端通过服务器进行通信。使用轻量级数据库Sqlite3用于服务器端存储账号、密码和个人信息。
ljf_djcrs
·
2020-06-24 07:07
Linux网络编程
——tcp并发服务器(多进程)
一、tcp并发服务器概述一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。二、多进程并发服务器在Linux环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请求。父进程继续等待其它客户的请求。这种方法的优点是当客户有请求时,服务器能及时处
lianghe_work
·
2020-06-24 04:11
Linux_高级网络编程
linux网络编程
之-----多播(组播)编程
什么是多播单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。多播,也称为“组播”,将局域网中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同一分组中进行,其他的主机没有加
jmq_0000
·
2020-06-23 23:32
linux环境编程
linux网络编程
十三:I/O复用select
最近在看《linux高性能服务器编程》,在此做个日记,以激励自己,同时分享于有需要的朋友。I/O复用使得程序能够同时监听多个文件描述符,对提高程序的性能至关重要。通常,网络程序在下列情况下需要使用I/O复用技术:A.客户端程序要同时处理多个socket。B.客户端程序要同时处理用户输入和网络连接。比如:聊天室C.TCP服务器要同时监听socket和连接socket。D.服务器要同时处理TCP请求和
jasonliuvip
·
2020-06-23 20:20
linux网络编程
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他