Socket 程式設計(TCP)

2021-06-07 17:13:19 字數 1620 閱讀 1075

詳細請參見: 點我o(∩_∩)o哈!  很不錯的一篇文章哈~

下面是接收資料和傳送資料的函式

int receive(socket fd, char *sztext, int len)

if (rc == 0)

return len - cnt;

sztext += rc;

cnt -= rc;

}return len;

}int send(socket fd, char *sztext, int len)

if (rc == 0)

return len - cnt;

sztext += rc;

cnt -= rc;

}return len;

}

伺服器端:

在伺服器端,主要是啟動socket和監聽執行緒。

#define default_port 2000

void cserverdlg::onstart()

//將本地位址繫結到所建立的套接字上

if (bind(m_listening, (lpsockaddr) &local, sizeof(local)) == socket_error)

//建立監聽執行緒,這樣也能響應介面上操作。

m_hlistenthread = ::createthread(null, 0, listenthread, this, 0,

&dwthreadid);

m_startbtn.enablewindow(false);

m_stopbtn.enablewindow(true);

}//監聽執行緒函式:

word winapi cserverdlg::listenthread(lpvoid lpparam)

char szbuf[max_path];

//初始化

memset(szbuf, 0, max_path);

while (1)

return 0;

}

伺服器端一直在監聽是否有客戶端連線,如有連線,處理客戶端的請求,給出回應,然後繼續監聽。

客戶端:

客戶端的傳送函式:

#define default_port 2000

void cclientdlg::onsend()

//傳送請求,為簡單只發100位元組,在伺服器端也規定100位元組。

send(sockettmp, sztext, 100);

//讀取伺服器端返回的資料。

memset(sztext, 0, max_path);

//接收伺服器端的回應。

receive(sockettmp, sztext, 100);

char szmessage[max_path];

memset(szmessage, 0, max_path);

strcat(szmessage, sztext);

//介面上顯示回應資料。

m_replybtn.setwindowtext(szmessage);

closesocket(sockettmp);

}

Socket 程式設計(TCP)

下面是接收資料和傳送資料的函式 cpp view plain copy intreceive socket fd,char sztext,intlen if rc 0 return len cnt sztext rc cnt rc return len int send socket fd,char...

socket程式設計TCP

注意一定要先啟動server,再啟動client,否則client因為無法找到server而丟擲異常 coding utf 8 from socket import serverport 12000 af inet表示底層網路使用的是ipv4,sock stream表示使用的socket型別是tcp...

socket程式設計 TCP

socket本身有 插座 的意思,在linux環境下,用於表示程序間網路通訊的特殊檔案型別。本質為核心借助緩衝區形成的偽檔案。既然是檔案,那麼理所當然的,我們可以使用檔案描述符引用套接字。與管道類似的,linux系統將其封裝成檔案的目的是為了統一介面,使得讀寫套接字和讀寫檔案的操作一致。區別是管道主...