回覆列表
  • 1 # 使用者1158134898603

    程式的寫法如下:

    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模型

  • 中秋節和大豐收的關聯?
  • 太陽系的上一代恆星系統中有幾顆太陽?