- #include <iostream>
- #include <winsock.h>
- #pragma comment(lib,"wsock32.lib")
- using namespace std;
- int main()
- {
- WSADATA data;
- // 載入類庫
- WSAStartup(MAKEWORD(1, 1), &data);
- // 初始化socket
- SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0);
- // 為了綁定此socket,設定綁定的資訊
- SOCKADDR_IN serverAddress;
- serverAddress.sin_family = AF_INET;
- serverAddress.sin_port = htons(9999);
- serverAddress.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
- // 綁定此socket
- bind(serverSocket, (SOCKADDR*)&serverAddress, sizeof(serverAddress));
- // 開始監聽
- listen(serverSocket, 5);
- SOCKADDR_IN clientAddress;
- int len = sizeof(clientAddress);
- while(1)
- {
- cout << "等待..." << endl;
- SOCKET clientSocket = accept(serverSocket, (SOCKADDR*)&clientAddress, &len);
- char sendBuffer[20];
- strcpy(sendBuffer, "Hi, client I'm server, welcome you !");
- send(clientSocket, sendBuffer, strlen(sendBuffer), 0);
- char recvBuffer[20];
- recv(clientSocket, recvBuffer, strlen(recvBuffer), 0);
- cout << recvBuffer << endl;
- cout << "Bye" << endl;
- closesocket(clientSocket);
- }
- return 0;
- }
這是一個簡單的伺服器代碼,在VC++6.0下 只需要複製該代碼,就可以完全的運行。
第一次看到這樣寫,總是覺得不可思議,太麻煩了。昨晚連續看了一下說明,基本思路清晰,已經完全可以自己寫出來這個代碼了。C++ 還是有點上手難啊。
不知道為什麼它裡面的Socket是這樣
1:首先載入類庫
2:初始化socket
3:綁定連接埠和ip(要先產生一個和連接埠、ip有關係的類,然後設定屬性)
4:開始監聽......
在Java裡面只需要通過類的建構函式把ip和連接埠設定進去,然後調用accept就進入了監聽模式了。
不過還好,思路都是一樣的,只是java中剩下的幫你做了。下面是在伺服器運行之後,用telnet上去的效果
不知道為什麼會出來那麼多的 燙 字 高手知道了 說一下 估計是 char[]的問題