在C语言中就学过scanf和printf,其实理解socket就跟这两个输入输出差不多,只不过是信息的传输而已。1.TCP服务器端(server)的默认函数调用顺序:按照上述的调用顺序,我们可以来写个最简单的"hello world" server程序。 1 #include 2 #include ...
分类:
其他好文 时间:
2014-10-31 15:13:56
阅读次数:
203
要想开发一个高性能的TCP服务器,熟悉所使用框架的线程模型非常重要。MINA、Netty、Twisted本身都是高性能的网络框架,如果再搭配上高效率的代码,才能实现一个高大上的服务器。但是如果不了解它们的线程模型,就很难写出高性能的代码。框架本身效率再高,程序写的太差,那么服务器整体的性能也不会太高...
分类:
编程语言 时间:
2014-10-17 10:08:51
阅读次数:
331
要想开发一个高性能的TCP服务器,熟悉所使用框架的线程模型非常重要。MINA、Netty、Twisted本身都是高性能的网络框架,如果再搭配上高效率的代码,才能实现一个高大上的服务器。但是如果不了解它们的线程模型,就很难写出高性能的代码。框架本身效率再高,程序写的太差,那么服务器整体的性能也不会太高。就像一个电脑,CPU再好,内存小硬盘慢散热差,整体的性能也不会太高。玩过Android开发的同学会...
分类:
编程语言 时间:
2014-10-16 15:25:42
阅读次数:
153
假如有一台客户机和一台服务器,现在客户机想要和服务器通信,那么首先客户机就会发送一个同步位等于1确认序列号有效位等于0的数据包给服务器,(syn(同步位)等于1表示请求建立链接)同时会随机产生一个sequence number(序列号),假如是100,当服务器接受到客户机发来的数据后,客户机从SYN(同步位)=1可知客户机是想要建立连接,第一次握手完成
第二次握手:服务器收到消息后肯定要进行确认...
分类:
其他好文 时间:
2014-10-16 11:47:12
阅读次数:
147
与TCP一样,SCTP也是面向连接的,因而也有关联的建立与终止的握手过程。不过SCTP的握手过程不同于TCP。四路握手建立一个SCTP关联的时候会发生下述情形(类似于TCP)。(1)服务器必须准备好接受外来的关联。这通常通过调用socket、bind和listen函数来完成,称为被动打开。(2)客户...
分类:
其他好文 时间:
2014-10-11 15:21:25
阅读次数:
251
引因: python 的日志收集服务是线程安全的(对同一个文件的写入,使用了锁),但是对于多进程的情况,它是无法处理的。python 官方文档推荐的做法是,使用tcp 服务器专门用于日志的收集,以确保对的文件的写入是安全的。这里提供了日志收集服务器基于twisted的实现,可供参考,程序在centos上进行了测试,并可用于生产环境...
分类:
编程语言 时间:
2014-10-02 15:47:03
阅读次数:
271
网上有很多文章讲TCP为什么建立连接时需要三次握手,关闭连接时需要四次握手,讲了很多原理,反而让很多人难以理解。
其实只有一句话:TCP连接是两个端点之间的事,由于TCP连接是可靠连接,所以不管是建立连接还是关闭连接,需要两个端点都要发送请求和收到确认
其次要理解TCP的通道是全双工的,是可以读和写数据的,理解这个之后就明白了为什么关闭连接时需要四次握手。
首先讲三次...
分类:
其他好文 时间:
2014-09-17 13:44:02
阅读次数:
213
参考资料:http://erlangcentral.org/wiki/index.php/Building_a_Non-blocking_TCP_server_using_OTP_principles服务器设计tcp_server_app下的根监控树使用one_for_one重启策略。两个子树应用,...
分类:
其他好文 时间:
2014-09-17 01:01:01
阅读次数:
418
建立TCP服务器步骤:建立socket对象,设置socket选项,绑定到一个端口,侦听连接。一、建立连接。s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)二、设置选项(可以不用)s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)具体选项可看socket(7)手册三、绑定端口s..
分类:
其他好文 时间:
2014-09-12 02:27:03
阅读次数:
140
请求/响应协议和RTTRedis是一个使用客户端/服务器模型(也被称作请求/响应协议)的TCP服务器。这说明通常来讲一个一个请求的实现有以下步骤:客户端发送请求到服务器,并从socket中以堵塞的方式读取服务器的响应数据。服务器对发动的命令进行处理并把响应数据发回客户端。比如发送连续四个命令就会像这...
分类:
其他好文 时间:
2014-09-11 16:38:32
阅读次数:
208