socket程式設計入門篇(三)

2021-09-24 11:28:04 字數 1366 閱讀 3389

這篇部落格介紹多執行緒併發伺服器的實現。

下面貼**。

服務端**

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