編了乙個伺服器

2021-04-27 23:12:55 字數 1786 閱讀 1874

//伺服器**

#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 會自動...