當前位置:首頁 » 雲伺服器 » tcpip通信伺服器搭建

tcpip通信伺服器搭建

發布時間: 2025-07-08 13:05:27

㈠ 求C語言高手,實現一個簡單的TCPIP程序以實現兩台計算機之間的聊天通信,

你上面給出的代碼其實就是MSDN裡面的演示代碼,不過不完整,只演示了兩個函數的使用,我給你看看我寫的TCP通訊程序,可以在同一個區域網內的兩台不同計算機之間聊天:

這其實就是某本將網路通訊的教程裡面的例子,不過是我自己重寫了一遍,下面給你代碼:

========================

下面是公共代碼:

========================

#ifndef__CINITSOCK__H__

#define__CINITSOCK__H__

#include<winsock2.h>

#include<iphlpapi.h>

#pragmacomment(lib,"ws2_32.lib")

#pragmacomment(lib,"iphlpapi.lib")

classCInitSock

{

public:

CInitSock(intnMinorVer=2,intnMajorVer=2)

{

WSADATAwsData;

WORDwVer=MAKEWORD(nMinorVer,nMajorVer);

if(0!=WSAStartup(wVer,&wsData))exit(0);

}

~CInitSock()

{

WSACleanup();

}

};

#endif

========================

下面是客戶端的代碼:

=======================

#include"CInitSock.h"

#include<iostream>

usingnamespacestd;

CInitSockg_Sock;

voidmain()

{

SOCKETsockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if(INVALID_SOCKET==sockClient)

return;

sockaddr_insockAddr;

sockAddr.sin_family=AF_INET;

sockAddr.sin_port=htons(4567);

sockAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

if(-1==connect(sockClient,(sockaddr*)&sockAddr,sizeof(sockAddr)))

{

cout<<"connectfailed"<<endl;

return;

}

while(true)

{

charszBuf[MAX_PATH];

ZeroMemory(szBuf,sizeof(szBuf));

cout<<"YouSay:";

cin>>szBuf;

if(SOCKET_ERROR ==send(sockClient,szBuf,MAX_PATH,0))

{

cout<<"sendfailed"<<endl;

return;

}

intnRecvLen=recv(sockClient,szBuf,MAX_PATH,0);

if(nRecvLen>0)

{

//szBuf[nRecvLen]='';

cout<<"ServiceSay:"<<szBuf<<endl<<endl;

}

else

{

cout<<"recvfailed"<<endl;

return;

}

}

closesocket(sockClient);

}

======================

下面是服務端的代碼:

======================

#include"CInitSock.h"

#include<iostream>

usingnamespacestd;

CInitSockg_Sock;

voidmain()

{

SOCKETsockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if(INVALID_SOCKET==sockClient)

return;

sockaddr_insockAddr;

sockAddr.sin_family=AF_INET;

sockAddr.sin_port=htons(4567);

sockAddr.sin_addr.S_un.S_addr=INADDR_ANY;

bind(sockClient,(sockaddr*)&sockAddr,sizeof(sockAddr));

listen(sockClient,SOMAXCONN);

charszBuf[MAX_PATH];

sockaddr_inremoteAddr;

intnLen=sizeof(sockaddr_in);

SOCKETsock=accept(sockClient,(sockaddr*)&remoteAddr,&nLen);

while(true)

{

intnRecvLen=recv(sock,szBuf,MAX_PATH,0);

if(nRecvLen>0)

{

cout<<"ClientSay:"<<szBuf<<endl<<endl;

}

ZeroMemory(szBuf,sizeof(szBuf));

cout<<"YouSay:";

cin>>szBuf;

if(SOCKET_ERROR==send(sock,szBuf,MAX_PATH,0))

{

cout<<"sendfailed"<<endl;

}

}

closesocket(sock);

closesocket(sockClient);

}

希望能夠幫到樓主。

㈡ TCPIP協議4裡面怎麼設置

在TCP/IP協議4中的設置方法如下:

  1. 使用DHCP自動獲得IP設置

    • 步驟:單擊「自動獲得IP地址」,然後點擊「確定」。
  2. 手動指定IP地址

    • 步驟:單擊「使用下面的IP地址」,然後在「IP地址」、「子網掩碼」和「默認網關」框中,分別鍵入所需的IP地址設置。
  3. 設置DNS伺服器地址

    • 說明:如果不知道本省和市的首選DNS地址,可以參考國內各省市的首選DNS地址列表。
    • 步驟:在相應的DNS伺服器地址設置區域,輸入所查詢到的首選DNS地址。

注意事項: 在進行以上設置前,請確保已經連接到網路,並且有足夠的許可權進行網路配置更改。 手動指定IP地址時,需要確保所設置的IP地址不與網路中其他設備的IP地址沖突。 DNS伺服器地址的設置對於網路訪問的速度和穩定性有一定影響,因此建議根據所在地區的實際情況選擇合適的DNS伺服器。

熱點內容
vue引入ftp 發布:2025-07-10 18:24:07 瀏覽:970
ups蓄電池如何配置 發布:2025-07-10 18:15:31 瀏覽:983
三星手機初始密碼是多少啊 發布:2025-07-10 18:10:49 瀏覽:776
固定伺服器的地址 發布:2025-07-10 17:59:10 瀏覽:53
資料庫堆表 發布:2025-07-10 17:57:17 瀏覽:164
伺服器一般要求配置動態ip地址 發布:2025-07-10 17:46:17 瀏覽:444
主機什麼配置可以玩原神 發布:2025-07-10 17:45:23 瀏覽:744
java學習平台 發布:2025-07-10 17:35:51 瀏覽:800
伺服器的出生點如何造好看 發布:2025-07-10 17:30:50 瀏覽:542
xp系統移動硬碟加密 發布:2025-07-10 17:27:20 瀏覽:888