如果你已经熟悉Windows上的网络编程,那么转入Linux的网络编程是非常容易的。因为它们都使用socket api进行编程。以下范例代码演示了一个最简单的服务端程序。该程序在一个循环内不断监听接受新的连接,然后为每个连接创建一个新的线程来进行IO处理。 IO处理部分也是用最简单的,收到什么数据就返回什么数据。这种模型(per-conn-per-thread)较为简单,但效率也较低,效率要求高的服务一般不采用这种模型。
//编译方法:gcc filename.cpp -lstdc++ -lpthread
#include
<
arpa
/
inet.h
>
#include < iostream >
#include < sys / socket.h >
#include < netinet / in .h >
#include < sys / types.h >
#include < errno.h >
#include < string >
#include < pthread.h >
using namespace std;
void * wrk_thread( void * parg);
void * wrk_thread( void * parg)
... {//IO处理线程
int peer =*((int *)parg);
int err = 0;
char buf[4096] = ...{'
#include < iostream >
#include < sys / socket.h >
#include < netinet / in .h >
#include < sys / types.h >
#include < errno.h >
#include < string >
#include < pthread.h >
using namespace std;
void * wrk_thread( void * parg);
void * wrk_thread( void * parg)
... {//IO处理线程
int peer =*((int *)parg);
int err = 0;
char buf[4096] = ...{'