Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Socket接口原理及用C#语言实现

Socket接口原理及用C#语言实现

首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务端的连接请求。这里为了便于理解,提到了一些调用及其大致的功能。使用socket调用后,仅产生了一个可以使用的socket描述符,这时还不能进行通信,还要使用其他的调用,以使得socket所指的...
C程序标准及glibc

C程序标准及glibc

1、ANSI C是兼容各种操作系统的C标准2、POSIX标准兼容了UNIX系统的C标准1.Glibcglibc = GNU C Library是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。2.uClibc一个小型的C语言标准库,主要用于...
Linux程序存储结构

Linux程序存储结构

Linux系统下,程序是一个可执行文件,通常是ELF格式。通常,Linux的可执行文件拥有两种内存分配方式:存储时 和 运行时1、存储时看实例,下面是对可执行文件aa运行size命令后得到的结果。[root@xxx1 algriom]# size aatext data bss dec hexfilename1257 500 161773 6ed aa其中:text(代码区):表示正文段大小,是CPU执行的机器指令部分,通常,是可共享的,所以...
Java中获取系统相关信息——sigar

Java中获取系统相关信息——sigar

一、sigar简介sigar中文名是系统信息收集和报表工具,是一个开源的工具,提供了跨平台的系统信息收集的API,可以和绝大多数操作系统和大多数版本打交道,可以收集的信息包括:1.操作系统的信息,包括:dataModel、cpuEndian、name、version、arch、machine、description、patchLevel、vendor、vendorVersion、vendorName、vendorCodeName2.CPU信息,包括:基本信...
Linux C编程学习:如何锁定内存

Linux C编程学习:如何锁定内存

Linux 实现了请求页面调度,页面调度是说页面从硬盘按需交换进来,当不再需要的时候交换出去。这样做允许系统中每个进程的虚拟地址空间和实际物理内存的总量再没有直接的联系,因为在硬盘上的交换空间能给进程一个物理内存几乎无限大的错觉。 交换对进程来说是透明的,应用程序一般都不需要关心(甚至不需要知道)内核页面调度的行为。然而,在下面两种情况下,应用程序可能像影响系统的页面调度:确定性(Determinism) 时间约束严格的应用程序需要确定的行为。如果一些...
Linux C编程学习:静态链接库和动态链接库

Linux C编程学习:静态链接库和动态链接库

在C语言的层面上,对代码的重复利用通常是通过库(library)的方式来实现的。传统意义上的库指的是以后缀.a结尾的文件。严格来讲,函数库应当分为两种:静态链接库和动态链接库,也称动态共享库。静态链接库通常是指以.a为后缀的文件,而动态链接库则常常以.so为后缀名。静态链接库其实就是把一个或多个目标文件(即编译生成的.o文件)归档在一个文件中。此后,当需要使用这个静态库中的某个功能时,将这个静态库与要生成的应用程序链接在一起。ar工具 在Linux上平台...
Linux C编程学习:EOF

Linux C编程学习:EOF

EOF是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏。多数人认为文件中有一个EOF,用于表示文件的结尾。但这个观点实际上是错误的,在文件所包含的数据中,并没有什么文件结束符。对getc 而言,如果不能从文件中读取,则返回一个整数-1,这就是所谓的EOF。返回 EOF 无非是出现了两种情况,一是文件已经读完;;二是文件读取出错,反正是读不下去了。文件结束符EOF,Windows下为组合键Ctrl+Z,Unix/Linux下为组合键...
Linux C编程学习:getchar()和getch()

Linux C编程学习:getchar()和getch()

getchar函数名: getchar功 能: 从stdin流中读字符用 法: int getchar(void);注解: getchar有一个int型的返回值,当程序调用getchar时程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符...
C++内存池实现

C++内存池实现

利用C/C++开发大型应用程序中,内存的管理与分配是一个需要认真考虑的部分。本文描述了内存池设计原理并给出内存池的实现代码,代码支持Windows和Linux,多线程安全。内存池设计过程中需要考虑好内存的分配与释放问题,其实也就是空间和时间的矛盾。有的内存池设计得很巧妙,内存分配与需求相当,但是会浪费过多的时间去查找分配与释放,这就得不偿失;实际使用中,我们更多的是关心内存分配的速度,而不是内存的使用效率。基于此,本文按照如下思想设计实现内存池。主要包含三...
大数据处理-BitMap是什么

大数据处理-BitMap是什么

1. Bit Map算法简介所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2. Bit Map的基本思想我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟1Byt...
Java基础篇---网络编程(UDP程序设计)

Java基础篇---网络编程(UDP程序设计)

UDP程序设计在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的应用。在UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket用于完成信息的发送操作。例如:现在使用聊天工具进行聊天的功能,那么A的发送的信息B不一定可以接受的到,因为使用的是UDP的协议。UDP中主要是使用数据报...
Java基础篇---网络编程(TCP程序设计)

Java基础篇---网络编程(TCP程序设计)

TCP程序设计在Java中使用Socket(即套接字)完成TCP程序的开发,使用此类可以方便的建立可靠地,双向的,持续的,点对点的通讯连接。在Socket的程序开发中,服务器端使用serverSocket等待客户端的连接,对于Java的网络程序来讲,每一个客户端都使用一个socket对象表示。在Java的网络程序中,客户端只要符合连接的通讯协议,那么服务端都可以进行接收。ServerSocket类主要用于服务器端程序的开发上,用于接收客户端的连接请求。So...
<< 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 >>