單執行緒併發伺服器 select

2021-04-12 23:13:06 字數 1030 閱讀 6570

伺服器**:

#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...