代码改变世界

随笔分类 -  Linux网络编程

不带缓存的I/O和标准(带缓存的)I/O

2014-10-30 09:46 by youxin, 891 阅读, 收藏, 编辑
摘要: 首先,先稍微了解系统调用的概念: 系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别... 阅读全文

tcp 服务端如何判断客户端断开连接

2014-10-28 09:42 by youxin, 53775 阅读, 收藏, 编辑
摘要: 一篇文章:最近在做一个服务器端程序,C/S结构。功能方面比较简单就是client端与server端建立连接,然后发送消息给server。我在server端会使用专门的线程处理一条socket连接。这就涉及到一个问题,如果socket连接断开(异常,正常)后,我如何才能感知到?server端这边是绝对... 阅读全文

网络协议设计

2014-10-25 17:21 by youxin, 2805 阅读, 收藏, 编辑
摘要: 一篇文章:要解决的重点在于1 防止发送的消息丢失(1)接收方收到则应答(2)发送发发送后,过一段时间未收到应答,则重发;重发多次仍无应答,则退出2 防止应答丢失(1)应答丢失,则发送方会重发。接收方需判断收到的消息是否重复(帧中加入序列号)3 身份确认(1)用地址确认身份4 传递效率(1)限制每条消... 阅读全文

游戏服务器设计

2014-10-25 12:01 by youxin, 2156 阅读, 收藏, 编辑
摘要: 文档:http://wenku.baidu.com/link?url=JkUi-EeYnzmB1qCGrCZ_JBFoHcMhYbp6zGpetxQ75atzLQGaN8k42zKKbu79XqBujaFMeDVtqIKGoWFASozjUe3oJfdgkBIfKVH-bHjkdIS游戏服务器系统设... 阅读全文

socket的半包,粘包与分包的问题

2014-10-25 11:50 by youxin, 1994 阅读, 收藏, 编辑
摘要: http://zhaohuiopensource.iteye.com/blog/1541270首先看两个概念:短连接:连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完... 阅读全文

/dev/tty /dev/ttyS0 /dev/tty0,/dev/null区别

2014-10-25 09:52 by youxin, 2072 阅读, 收藏, 编辑
摘要: 1./dev/tty表示控制终端如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使... 阅读全文

linux 僵死进程

2014-10-23 22:20 by youxin, 804 阅读, 收藏, 编辑
摘要: 僵死进程简而言之就是:子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用... 阅读全文

linux fork函数与vfork函数,exit,_exit区别

2014-10-23 22:04 by youxin, 1149 阅读, 收藏, 编辑
摘要: man vfork:NAME vfork - create a child process and block parentSYNOPSIS #include #include pid_t vfork(void);DESCRIPTION Sta... 阅读全文

wait、waitpid 僵尸进程 孤儿进程

2014-10-22 12:48 by youxin, 1065 阅读, 收藏, 编辑
摘要: man wait:NAME wait, waitpid, waitid - wait for process to change stateSYNOPSIS #include #include pid_t wait(int *status); ... 阅读全文

storage size of ‘oldact’ isn’t known

2014-10-22 11:00 by youxin, 1246 阅读, 收藏, 编辑
摘要: #include int main(){struct sigaction act, oldact;return 0;}dies with the messagetestgcc4.c: In function ‘main’:testgcc4.c:6: error: storage size of ‘a... 阅读全文

linux read和write函数

2014-10-21 18:23 by youxin, 16715 阅读, 收藏, 编辑
摘要: 原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003read函数是Linux下不带缓存的文件I/O操作函数之一,所谓的不带缓存是指一个函数只调用系统中的一个函数。另外还有open、write、lseek、cl... 阅读全文

linux select

2014-10-17 14:15 by youxin, 611 阅读, 收藏, 编辑
摘要: man select:#include #include int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval ... 阅读全文

openfire+spark+smack实现即时通讯

2014-09-11 13:23 by youxin, 616 阅读, 收藏, 编辑
摘要: 近公司项目需要用到即时通讯功能,经过调研发现openfire+spark+smack可以实现。在网上找了很久,资料都十分有限,即使有些朋友实现了也说的不清不楚。于是决定自己研究,耗时一周的时间实现了文字通讯和文件传输的功能。现发帖分享给有需要的朋友,也希望大家能够把自己的资料都分享出来,不要敝扫自珍... 阅读全文

openfire开发

2014-09-11 13:07 by youxin, 1267 阅读, 收藏, 编辑
摘要: openfire github地址:https://github.com/igniterealtime/Openfire1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp2、把源代码解压出的openfire_src文件夹放至eclip... 阅读全文

即时通信Spark安装和配置

2014-09-11 12:57 by youxin, 394 阅读, 收藏, 编辑
摘要: spark:Cross-platform real-time collaboration client optimized for business and organizations.Spark is a full-features instant messaging (IM) and group... 阅读全文

openfire 介绍安装使用

2014-09-11 11:59 by youxin, 3685 阅读, 收藏, 编辑
摘要: Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。您可以使用它轻易的构建高效率的即时通信服务器.由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的I... 阅读全文

转:socket编程在windows和linux下的区别

2014-09-11 10:56 by youxin, 5981 阅读, 收藏, 编辑
摘要: 如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境。下面大概分几个方面进行罗列:Linux要包含[cpp]#include #include #include #inclu... 阅读全文

socklen_t在windows和linux平台下的头文件定义

2014-09-11 10:54 by youxin, 26691 阅读, 收藏, 编辑
摘要: windows平台下:头文件:#includelinux平台下:下面两个头文件都有定义:1)#include 2)#include 详细定义:typedef int socklen_t;翻译:任何完整的库必须定义socklen_t和int相同的尺寸大小。别的事情打破了BSD套接字层的填充。POSIX... 阅读全文

libevent入门教程

2014-09-11 10:52 by youxin, 13093 阅读, 收藏, 编辑
摘要: 首先给出官方文档吧:http://libevent.org,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看还是很有必要的),还有个Reference,大致就是对各个... 阅读全文

libevent安装

2014-09-10 14:14 by youxin, 2203 阅读, 收藏, 编辑
摘要: win7上安装: Libevent官网:http://libevent.org/ windows 7下编译: 编译环境: windows 7 + VS2010 (1)解压libevent到F:\libevent\libevent-2.0.21-stable (2)打开Microsoft visual 阅读全文