程式的寫法如下:
1. 定義了3個SOCKE變數:SocketA,SocketB,SocketC,它們的埠分別為10000,10001,10002。
(1)connect-SocketA。
(2)send-向SocketA傳送資料。
(3)recv-獲取應用程式B操作的結果。
3. 應用程式B
在程式啟動後,建立3個Socket(SocketA,SocketB,SocketC)。然後建立3個執行緒,分別用來監聽這3個Socket。
InitSocket
{
SocketA = socket(......);
bind-繫結SocketA。
SocketB = socket(......);
bind-繫結SocketB。
SocketC = socket(......);
bind-繫結SocketC。
}
ThreadA
char sendBuf[4096];
char recvBuf[4096];
int rt = 0;
listen-SocketA.
while( TRUE )
// 1.接收連線;
socket connSock = accept(.....);
// 2.接收運算元;
recv(recvBuf,...);
// 3.根據運算元執行不同的操作;
if( recvBuf[3]= 0x11 )
......
if( recvBuf[3]= 0x22 )
// 4.返回操作結果;
memcpy(sendBuf,&rt,sizeof(int));
send(......);
// 5. 關閉連線;
shutdown(connSock,SD_BOTH);
closesocket(connSock);
關於socket的IO模型
程式的寫法如下:
1. 定義了3個SOCKE變數:SocketA,SocketB,SocketC,它們的埠分別為10000,10001,10002。
(1)connect-SocketA。
(2)send-向SocketA傳送資料。
(3)recv-獲取應用程式B操作的結果。
3. 應用程式B
在程式啟動後,建立3個Socket(SocketA,SocketB,SocketC)。然後建立3個執行緒,分別用來監聽這3個Socket。
InitSocket
{
SocketA = socket(......);
bind-繫結SocketA。
SocketB = socket(......);
bind-繫結SocketB。
SocketC = socket(......);
bind-繫結SocketC。
}
ThreadA
{
char sendBuf[4096];
char recvBuf[4096];
int rt = 0;
listen-SocketA.
while( TRUE )
{
// 1.接收連線;
socket connSock = accept(.....);
// 2.接收運算元;
recv(recvBuf,...);
// 3.根據運算元執行不同的操作;
if( recvBuf[3]= 0x11 )
{
......
}
if( recvBuf[3]= 0x22 )
{
......
}
// 4.返回操作結果;
memcpy(sendBuf,&rt,sizeof(int));
send(......);
// 5. 關閉連線;
shutdown(connSock,SD_BOTH);
closesocket(connSock);
}
關於socket的IO模型