下面是接收資料和傳送資料的函式
[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
*sztext,
intlen)
if(rc == 0)
return
len - cnt;
sztext += rc;
cnt -= rc;
} return
len;
}
伺服器端:
在伺服器端,主要是啟動socket和監聽執行緒。
[cpp]view plain
copy
#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;
}
伺服器端一直在監聽是否有客戶端連線,如有連線,處理客戶端的請求,給出回應,然後繼續監聽。
客戶端:
客戶端的傳送函式:
[cpp]view plain
copy
#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)
詳細請參見 點我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...
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系統將其封裝成檔案的目的是為了統一介面,使得讀寫套接字和讀寫檔案的操作一致。區別是管道主...