這篇部落格介紹多執行緒併發伺服器的實現。
下面貼**。
服務端**
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define serverip "127.0.0.1"
#define serverport 12345
#define maxbuffer 256
pthread_t ntid;//執行緒
int connfd;//客戶端連線的id
struct sockaddr_in clientaddr;
void *printcontext(void *arg)
;//用來存放客戶端連線的ip位址
char readbuf[maxbuffer]=;
int ret;
pthread_detach(ntid);//執行緒退出時,可以清理記憶體
int pconnfd=connfd;//客戶端連線的id(main函式中的accept的返回值)
//執行緒自己要儲存連線符 id,因為程序在第二個客戶端
//連線後,會覆蓋connfd
printf("%s\n",inet_ntop(af_inet,&clientaddr.sin_addr,ip,sizeof(ip)));
cout<<"connectd to the server"《客戶端**
#include#include#include#include#include#include#include#include#define serverip "127.0.0.1"
#define serverport 12345
#define maxbuffer 256
int main(int argc,char** ar**)
bzero(&serveraddr,sizeof(serveraddr));
serveraddr.sin_family=af_inet;
serveraddr.sin_port=htons(serverport);
inet_pton(af_inet,serverip,&serveraddr.sin_addr);
//連線到伺服器
ret=connect(clientfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr));
if(ret!=0)
while(1)
close(clientfd);
return (exit_success);
}
服務端在編譯時要加上「-lpthread」。 sass學習入門篇(三)
這章我們講 巢狀 巢狀包括兩種 一,選擇器巢狀。二是屬性的巢狀。一般用選擇器巢狀居多 一,選擇器巢狀 指的是在乙個選擇器中巢狀另乙個選擇器來實現繼承。使用 表示父元素選擇器 li 跟css用法一樣,沒什麼說的。二,屬性巢狀,指的是有些屬性擁有同乙個開始單詞,如border width,border ...
網路程式設計之入門篇(一)
伺服器端操作 socket 套接字 1 在初始化階段呼叫wsastartup 此函式在應用程式中初始化windows sockets dll 只有此函式呼叫成功後,應用程式才可以再呼叫其他windows sockets dll中的api函式。在程式中呼叫該函式的形式如下 wsastartup wor...
多執行緒程式設計 之 入門篇
自己第一次涉及c語言的多執行緒程式設計,實屬入門了解級別的 之前只做過j a的runnable的多執行緒程式設計。本次我們可以把螢幕看成是乙個資源,這個資源被兩個執行緒所共用,include include using namespace std dword winapi fun lpvoid lp...