//伺服器**
#include //包含socket 2版本的標頭檔案;
#include
#include
#pragma comment(lib, "ws2_32.lib") //呼叫網路動態庫!
int _tmain(int argc, _tchar* argv)
word sockversion = 0x0002; //定義版本號;
//sockversion = makeword(2, 0);
wsadata wsadata;
::wsastartup(sockversion, &wsadata); //獲取dll動態庫的版本;
socket s = 0;
s = ::socket(af_inet, sock_stream, ipproto_tcp); //建立套接字;
if (s == invalid_socket)
printf("failed socket()!/n");
wsacleanup();
return 0;
sockaddr_in sin;
sin.sin_family = af_inet;
sin.sin_port = htons(8888);
sin.sin_addr.s_un.s_addr = inaddr_any; //定義服務網路埠位址;
if (::bind(s, (lpsockaddr)&sin, sizeof(sin))) //繫結套接字到服務位址;
printf("failed bind()!/n");
wsacleanup();
return 0;
if(listen(s, 5)) //監聽網路埠 ,5個連線;
printf("failed listen()!/n");
wsacleanup();
return 0;
sockaddr_in remoteaddr; //遠端客戶端位址;
int naddrlen = sizeof(remoteaddr);
socket client;
char sztext ="serverdemo!/r/n";
while (true)
client = accept(s, (lpsockaddr)&remoteaddr, &naddrlen); //接受遠端客戶端連線, 並產生和
//該客戶端的連線的套介面;
if (client == invalid_socket)
printf("failed accept()!/n");
continue;
printf("接收乙個連線:%s/r/n", inet_ntoa(remoteaddr.sin_addr)); // 列印連線的客戶端ip
send(client, sztext, strlen(sztext),0 ); //給客戶端傳送特點字元;
char buff[256];
int nrecv = recv(client, buff, 256, 0); //接受客戶端傳送過來的資料;
if (nrecv > 0)
buff[nrecv] = '/0';
printf("接收到客戶端回應:%s/n", buff);
closesocket(client); //用完關閉套接字
closesocket(s); //關閉伺服器端套接字;
wsacleanup(); //清除winsock函式;
return 0;
搭建乙個FTP伺服器
1 首先在本地機器上建立乙個使用者!這些使用者是用來登入到ftp的!我的電腦右鍵 管理 本地使用者和組 使用者 右鍵 新建使用者 輸入使用者名稱和密碼再點建立就行了!3 之後是安裝iis元件!在開始選單裡 控制面板 新增或刪除程式 新增 刪除windows元件 應用程式伺服器 internet 資訊...
寫乙個索引伺服器
今天把 jaxb 返回的 xml 物件 轉到了 lucene 的 document 然後仍給 index search 一把。還算順利搞定。接下來開始解決網路介面。寫乙個基於netty的索引伺服器。接收client仍過來的xml資料報。關於netty的資料除了 url 還有一部分中文的。url 大致...
手寫乙個伺服器 二
上一節我們完成的服務起的目錄搭建,並寫了乙個簡單的服務,在這一節,將完成函式封裝,返回內容 每次我麼在寫玩 都需要重新啟動服務,簡直蠢的不要不要的,這裡我們使用supervisor supervisor 熱更新模組 安裝 npm install supervisor g supervisor 會自動...