标签归档:linux

Linux下C语言实现的一个多线程Socket服务器端

话说,最近开始神奇地拿C/C++做开发了。。

从最开始的时候就觉得,C/C++神马,做开发是无比蛋疼的。。

嘛,既然是工作需要,那就上吧。TAT。这次补上C/C++和.NET,这样主流开发语言就基本上都做过东西了。。哈,听起来很牛X的样子。我只是个菜鸟。。

以上跑题———-下转正题。

话说一般做C/C++的系统肯定会遇到的技术点,比如GUI,多线程,网络通讯,数据库等等。当然你非要说做单机的“火车订票系统”,那也没办法。当然实际的应用场景肯定不是这样的。

今天晚上就试着自己摸索摸索如何在Linux平台上用C语言实现一个服务器端。

大致了解下的多客户端服务器程序,要么是单或者少量线程的多路复用的非阻塞式,要么是一个客户端一个线程。当然两种方式各有相应的应用场景,不能谁打死谁。按照一般大学教科书上介绍的服务器带多客户端,大多数是后者,即来个请求,起一个线程为其服务。由此也能推断,这种适合于,数据通讯及时性强,长期连接的应用场景。这次介绍的就是多线程的Socket服务器端的示例。

继续阅读

Ubuntu Linux 服务器搭建OpenVPN服务器

话说,最近在学校做毕设,寝室的ChinaNet被学校水产了,说是要登记才能使用。自己试验的时候发现,登录成功后,几十秒内还可访问网页,之后网页就上不去了,显示连接被重置(是不是像某墙?),但是QQ神马的依然可以正常使用,而且已经建立的TCP长连接不会被中断。于是考虑服务器端针对TCP的三次握手进行了攻击,导致无法正常访问网页。之前记得VPN常用的拨号方式主要有PPTP、L2TP和OpenVPN,后两种方式支持底层使用UDP方式通讯。在Linux上,开源社区的OpenVPN自然是不二的选择。

配置OpenVPN的步骤,大致包括两部分,首先是服务器端的OpenVPN服务,其次是客户端的OpenVPN软件。首先我们在Ubuntu 10.04 TLS上配置OpenVPN服务器端。

继续阅读

Linux下定时切割Nginx访问日志并打包压缩的Shell脚本

之前写过这篇文章,但是由于上次的数据丢失故障这篇日志没有了。于是我又重新写了这个脚本,再次贴出来,给大家。

继续阅读

VMWare 三种网络模式(bridged、host-only、NAT)

VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式
)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先
了解一下这三种工作模式。
  1.bridged(桥接模式)
  在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主
机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置
IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿
主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,
那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访
问互联网。
继续阅读