select的限制用select实现的并发服务器,能达到的并发数一般受两方面限制:1)一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n(number)来调整或者使用setrlimit函数设置,但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看/**示例: getrlimit/setrlimit...
分类:
其他好文 时间:
2015-03-14 21:50:34
阅读次数:
212
UNIX域协议 UNIX域套接字与TCP相比, 在同一台主机上, UNIX域套接字更有效率, 几乎是TCP的两倍(由于UNIX域套接字不需要经过网络协议栈,不需要打包/拆包,计算校验和,维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程, 而且UNIX域协议机制本质上就是可靠的通讯, 而网络协议是为不可靠的通讯设计的). UNIX域套接字可以在同一台主机上各进程之间传递文件描述符...
分类:
其他好文 时间:
2015-03-14 21:49:06
阅读次数:
162
引:超时设置3种方案1. alarm超时设置方法//代码实现: 这种方式较少用
void sigHandlerForSigAlrm(int signo)
{
return ;
}
signal(SIGALRM, sigHandlerForSigAlrm);
alarm(5);
int ret = read(sockfd, buf, sizeof(buf));
if (ret == -1 ...
分类:
其他好文 时间:
2015-03-14 20:05:16
阅读次数:
184
五种I/O模型介绍(1)阻塞I/O[默认] 当上层应用App调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞;当对等方发送了数据,Linux内核recv端缓冲区数据到达,内核会把数据copy给用户空间。然后上层应用App解除阻塞,执行下一步操作。 (2)非阻塞I/O[少用] 上层应用App将套接字设置成非阻塞模式, 然...
分类:
其他好文 时间:
2015-03-14 17:05:48
阅读次数:
220
基于UDP模式的C/S通信
这是Client端的:
import java.net.*;
import java.io.*;
public class UDPClient{
public static void main(String args[]){
DatagramSocket socket = null;
DatagramPacket packet = null;
Inet...
分类:
编程语言 时间:
2015-03-14 17:02:13
阅读次数:
149
套接字 SocketsBoost.Asio有三种类型的Socket类:ip::tcp,ip::udp和ip::icmp,三者都是可扩展的。你可以创建自己的Socket类,虽然做起来稍微复杂了点。假如你真的要这么做,可以参考boost/asio/ip/tcp.hpp,boost/asio/ip/udp.hpp和boost/asio/ip/icmp.hpp。它们都是很小的类,在内部使用typedef关键...
分类:
其他好文 时间:
2015-03-14 17:00:22
阅读次数:
132
socket函数#include
#include
int socket(int domain, int type, int protocol);创建一个套接字用于通信参数: domain:指定通信协议族(protocol family),常用取值AF_INET(IPv4) type:指定socket类型, 流式套接字SOCK_STREAM,数据报套接字SOCK_DGRAM,原始套接字...
什么是Socket? Socket可以看成是用户进程与内核网络协议栈的接口(编程接口, 如下图所示), 其不仅可以用于本机进程间通信,可以用于网络上不同主机的进程间通信, 甚至还可以用于异构系统之间的通信。 IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中//TCP/IP地址结构
struct socka...
分类:
其他好文 时间:
2015-03-14 12:28:25
阅读次数:
171
http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html——TCM项目所得一、看图说话1、基于套接字的TCP服务器/客户端程序流程2、TCP三次握手建立连接3、TCP四次交互断开连接4、TCP状态转移图这张图看不懂的话解释在计算机网络第四版P274。解...
分类:
其他好文 时间:
2015-03-13 18:37:18
阅读次数:
193
用户数据包协议(User Datagram Protocal, UDP),UDP服务器端和客户端均只需要 1 个套接字。在TCP中向 10 个客户端提供服务,则除了守门的服务器套接字之外,还需要 10 个服务器端套接字。UDP不保存连接状态,因此每次传输数据都要添加目标地址信息。#include ssize_t sendto(int sock, void *buf, si...
分类:
其他好文 时间:
2015-03-13 16:29:28
阅读次数:
170