资源简介
有一个服务器与客户端,两者可以通话。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个文件信息
评论
共有 条评论