-
大小: 15.92MB文件類(lèi)型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-07-14
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
有一個(gè)服務(wù)器與客戶(hù)端,兩者可以通話(huà)。VC++環(huán)境下可以直接運(yùn)行。
代碼片段和文件信息
#pragma?comment(lib“ws2_32.lib“)
#include?
#include?
#include?
//定義與主機(jī)連接的端口
#define?PORT?8888
//定義最大傳輸數(shù)據(jù)量
#define?MAXDATA?100
//由入口函數(shù)得到需要連接主機(jī)的IP地址
int?main(int?ars?char**?arg)
{
//開(kāi)啟windows的socket
WSADATA?wsaData;
WSAStartup(0x101?&wsaData);
//定義服務(wù)器
struct?sockaddr_in?serveraddr;
//將serveraddr清零
memset((void*)&serveraddr?0?sizeof(serveraddr));
//定義家族協(xié)議
serveraddr.sin_family?=?AF_INET;
//得到主機(jī)IP地址
serveraddr.sin_addr.s_addr?=?inet_addr(“127.0.0.1“);
//得到端口
serveraddr.sin_port?=?htons(PORT);
//得到socket嵌套字
SOCKET?s?=?socket(AF_INET?SOCK_STREAM?0);
/*
*建立TCP連接
*參數(shù)1:socket返回的描述符
*參數(shù)2:主機(jī)IP地址和端口號(hào)指針
*參數(shù)3:遠(yuǎn)端地質(zhì)借口長(zhǎng)度
*/
if?(connect(s?(struct?sockaddr*)&serveraddr?sizeof(serveraddr))?==?-1)
{
perror(“連接錯(cuò)誤!“);
exit(1);
}
//進(jìn)入監(jiān)聽(tīng)服務(wù)器發(fā)送消息,采取異步通信
while?(1)
{
//初始化接收和發(fā)送數(shù)據(jù)的存儲(chǔ)
char?receiveBuffer[MAXDATA]?=?“\n“;
char?sendBuffer[MAXDATA]?=?“\n“;
//定發(fā)送模式
bool?sendFlag?=?false;
//如果接收數(shù)據(jù)位-1則接收錯(cuò)誤,正確是recv返回接收到數(shù)據(jù)的長(zhǎng)度
if?(recv(s?receiveBuffer?MAXDATA?0)?==?-1)
{
perror(“接收數(shù)據(jù)錯(cuò)誤!“);
exit(1);
}
printf(“server?%s?send?message:?%s\n“?inet_ntoa(serveraddr.sin_addr)?receiveBuffer);
//發(fā)送模式
sendFlag?=?true;
while?(sendFlag)
{
char*?CloseClient?=?“bye“;
char*?CloseC_S?=?“byebye“;
//得到輸入的數(shù)據(jù)
printf(“Your?Message??:“);
scanf(“%s“?sendBuffer);
if?(strcmp(sendBuffer?CloseClient)?==?0)
{
send(s?CloseClient?strlen(CloseClient)?0);
closesocket(s);
exit(1);
}
else{
//得到發(fā)送數(shù)據(jù)的長(zhǎng)度
int?sendLen?=?send(s?sendBuffer?strlen(sendBuffer)?0);
//發(fā)送數(shù)據(jù)長(zhǎng)度為-1時(shí),發(fā)送失敗
if?(sendLen?==?-1)
{
perror(“發(fā)送錯(cuò)誤!“);
closesocket(s);
}
}
//發(fā)送模式結(jié)束,進(jìn)入接收模式
sendFlag?=?false;
}
}
return?0;
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????4084??2015-05-21?16:44??Client2\Client2\Client2.vcxproj
?????文件????????944??2015-05-21?16:43??Client2\Client2\Client2.vcxproj.filters
?????文件???????1501??2015-05-21?19:17??Client2\Client2\Debug\Client2.log
?????文件????????550??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\cl.command.1.tlog
?????文件??????21786??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\CL.read.1.tlog
?????文件????????288??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\CL.write.1.tlog
?????文件????????151??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\Client2.lastbuildstate
?????文件????????962??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\li
?????文件???????2276??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\li
?????文件????????272??2015-05-21?19:17??Client2\Client2\Debug\Client2.tlog\li
?????文件?????781312??2015-05-21?19:17??Client2\Client2\Debug\vc120.idb
?????文件?????421888??2015-05-21?19:17??Client2\Client2\Debug\vc120.pdb
?????文件??????33109??2015-05-21?19:17??Client2\Client2\Debug\源.obj
?????文件???????2051??2015-05-21?20:55??Client2\Client2\源.cpp
?????文件???37486592??2015-05-21?21:05??Client2\Client2.sdf
?????文件????????967??2015-05-21?16:42??Client2\Client2.sln
????..A..H.?????22016??2015-05-21?21:05??Client2\Client2.v12.suo
?????文件??????32256??2015-05-21?19:17??Client2\Debug\Client2.exe
?????文件?????256092??2015-05-21?19:17??Client2\Debug\Client2.ilk
?????文件????1142784??2015-05-21?19:17??Client2\Debug\Client2.pdb
?????文件??????33280??2015-05-21?17:56??Server2\Debug\Server2.exe
?????文件?????262900??2015-05-21?17:56??Server2\Debug\Server2.ilk
?????文件????1142784??2015-05-21?17:56??Server2\Debug\Server2.pdb
?????文件???????1225??2015-05-21?17:56??Server2\Server2\Debug\Server2.log
?????文件????????604??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\cl.command.1.tlog
?????文件??????21732??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\CL.read.1.tlog
?????文件????????288??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\CL.write.1.tlog
?????文件????????962??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\li
?????文件???????2484??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\li
?????文件????????272??2015-05-21?17:56??Server2\Server2\Debug\Server2.tlog\li
............此處省略23個(gè)文件信息
評(píng)論
共有 條評(píng)論