伺服器**:
#include "creatsocket.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include "error.h"
#define buffsize 20
extern int errno;
main()
close(temp_sock);
printf("the connect has closed!/n");}}
客戶端**:
#include
#include
#include
#include
#include
#include
#include "error.h"
extern int errno;
#define buffsize 4096
int main(int argc,char *argv)
default:errexit("the argument has wrong!/n");
}int csock = socket(af_inet,sock_stream,0);
printf("the connect port is %d/n",sin.sin_port);
if(connect(csock,(void *)&sin,sizeof(sin)))
errexit("has't connect to the server!:%s/n",strerror(errno));
else
printf("has connect to the server!/n");
while(1)
}errexit()和passivetcp()兩個方法見"linux socket通訊示例(傳送檔案)"文章
nodejs 單執行緒 高併發
nodejs為什麼是單執行緒且支援高併發的指令碼語言呢?1.node的優點 i o密集型處理 node的i o請求都是非同步的,如 sql查詢 檔案流操作 http請求 非同步i o?顧名思義就是非同步的發出i o請求 要理解node的原理,可能還需要了解一些多執行緒或者併發的基本知識。nodejs...
Node單執行緒高併發原理
瀏覽器中的js是單執行緒的,node也是單執行緒的。這個單執行緒相當於乙個大管家,一切大小事務都要經過他的手才能辦成,它總是把io任務放入到任務池中。雖然說是單執行緒,但是node也有乙個執行緒池專門負責執行任務池中的任務,它們把任務完成之後會告知主線程以接下來利用cpu完成處理。關鍵在於理清哪些任...
Select實現併發伺服器
併發伺服器除了可以用多執行緒和多程序實現以外,還可以用select實現單執行緒併發,下面用select實現簡單的示例,伺服器接收客戶端的連線,並將客戶發的訊息返回,如下 伺服器端 main.c include include include include include include inclu...