文档介绍:-
z.
Socket编程报告〔TCP/IP协议〕
实验目的
通过C++来实现TCP/IP协议下的Socket编程,掌握TCP协议的算法实现。
实验原理
客户端 建立Socket,通过端口号和地址确定目标效 do
{
printf("process\n");
//接收数据
memset(buf,0,sizeof(buf));
rval = recv(newSocket,buf,1024,0);
if (rval == SOCKET_ERROR)
//这应该是个异常,当客户端没有调用closeSocket就直接退出游戏的时候,将会进入这里
printf("recv socket error\n");
if (rval == 0)
//recv返回0表示正常退出
printf("ending connection");
else
//显示接收到的数据
printf("recv %s\n",buf);
}while(rval != 0);
//关闭对应Accept的socket
closesocket(newSocket);
}
} while (1);
//关闭自身的Socket
closesocket(m_sock);
}
int main(int argc, char **argv)
{
CServerNet serverNet;
int iRlt = ("",8888);
if (iRlt == 0)
{
printf("init ok...\n");
();
}
else
printf("serverNet init failed with error : %d\n",iRlt);
system("pause");
}
客户端代码如下:
#pragma once
#include <>
#include<>
#pragma ment(lib, "")
class CClientNet
{
public:
-
z.
//连接上指定效劳器
int Connect(int port,const char* address);
//发送信息
int SendMsg(const char* msg,int len);
//关闭
void Close();
private:
SOCKET m_sock;
};
int CClientNet::Connect( int port,const char* address )
{
int rlt = 0;
//用于记录错误信息并输出
int iErrMsg;
//启动WinSock
WSAData wsaData;
iErrMsg = WSAStartup(MAKEWORD(1,1),&wsaData);
i