-
大小: 15.92MB文件類型: .rar金幣: 1下載: 0 次發布日期: 2023-07-14
- 語言: C/C++
- 標簽:
資源簡介
有一個服務器與客戶端,兩者可以通話。VC++環境下可以直接運行。
代碼片段和文件信息
#pragma?comment(lib“ws2_32.lib“)
#include?
#include?
#include?
//定義與主機連接的端口
#define?PORT?8888
//定義最大傳輸數據量
#define?MAXDATA?100
//由入口函數得到需要連接主機的IP地址
int?main(int?ars?char**?arg)
{
//開啟windows的socket
WSADATA?wsaData;
WSAStartup(0x101?&wsaData);
//定義服務器
struct?sockaddr_in?serveraddr;
//將serveraddr清零
memset((void*)&serveraddr?0?sizeof(serveraddr));
//定義家族協議
serveraddr.sin_family?=?AF_INET;
//得到主機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連接
*參數1:socket返回的描述符
*參數2:主機IP地址和端口號指針
*參數3:遠端地質借口長度
*/
if?(connect(s?(struct?sockaddr*)&serveraddr?sizeof(serveraddr))?==?-1)
{
perror(“連接錯誤!“);
exit(1);
}
//進入監聽服務器發送消息,采取異步通信
while?(1)
{
//初始化接收和發送數據的存儲
char?receiveBuffer[MAXDATA]?=?“\n“;
char?sendBuffer[MAXDATA]?=?“\n“;
//定發送模式
bool?sendFlag?=?false;
//如果接收數據位-1則接收錯誤,正確是recv返回接收到數據的長度
if?(recv(s?receiveBuffer?MAXDATA?0)?==?-1)
{
perror(“接收數據錯誤!“);
exit(1);
}
printf(“server?%s?send?message:?%s\n“?inet_ntoa(serveraddr.sin_addr)?receiveBuffer);
//發送模式
sendFlag?=?true;
while?(sendFlag)
{
char*?CloseClient?=?“bye“;
char*?CloseC_S?=?“byebye“;
//得到輸入的數據
printf(“Your?Message??:“);
scanf(“%s“?sendBuffer);
if?(strcmp(sendBuffer?CloseClient)?==?0)
{
send(s?CloseClient?strlen(CloseClient)?0);
closesocket(s);
exit(1);
}
else{
//得到發送數據的長度
int?sendLen?=?send(s?sendBuffer?strlen(sendBuffer)?0);
//發送數據長度為-1時,發送失敗
if?(sendLen?==?-1)
{
perror(“發送錯誤!“);
closesocket(s);
}
}
//發送模式結束,進入接收模式
sendFlag?=?false;
}
}
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????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個文件信息
評論
共有 條評論