1、Sever.cpp
#include
2、har buf[BUF_SIZE]; unsigned char sendBuf[BUF_SIZE]={0}; //初始化套结字动态库 if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) { cout << "WSAStartup failed!" << endl; return 1; } //创建套接字 sServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(INVALID_SOCKET == s
3、Server) { cout << "socket failed!" << endl; WSACleanup();//释放套接字资源; return -1; } //服务器套接字地址 addrServ.sin_family = AF_INET; addrServ.sin_port = htons(4999); addrServ.sin_addr.s_addr = INADDR_ANY; //绑定套接字 retVal = bind(sServer, (LPSOCKA
4、DDR)&addrServ, sizeof(SOCKADDR_IN)); if(SOCKET_ERROR == retVal) { cout << "bind failed!" << endl; closesocket(sServer); //关闭套接字 WSACleanup(); //释放套接字资源; return -1; } //开始监听 retVal = listen(sServer, 1); if(SOCKET_ERROR == retVal)
5、 { cout << "listen failed!" << endl; closesocket(sServer); //关闭套接字 WSACleanup(); //释放套接字资源; return -1; } //接受客户端请求 sockaddr_in addrClient; int addrClientlen = sizeof(addrClient); sClient = accept(sServer,(sockaddr FAR*)&addrCli
6、ent, &addrClientlen); if(INVALID_SOCKET == sClient) { cout << "accept failed!" << endl; closesocket(sServer); //关闭套接字 WSACleanup(); //释放套接字资源; return -1; } //----------以下只是为了编造一些数据进行试验-------------// int time=1000; int interval1=3
7、0; int height=101; int deg=2; int ord=2; int c[100]; int s[100]; //不要定义为int s[]={0};容易出错 //---------------------------------------------------------------------// while(true){ //接收客户端数据 ZeroMemory(buf, BUF_SIZE); retVal = recv(sClient, buf, BUF_SIZ
8、E, 0); if (SOCKET_ERROR == retVal) { cout << "recv failed!" << endl; closesocket(sServer); //关闭套接字 closesocket(sClient); //关闭套接字 WSACleanup(); //释放套接字资源; return -1; } if(buf[0] == '0') break; cout << "客户端发送
9、的数据: " << buf < 10、
a=i+1;
s[i]=a;
}
//---------------------------------------------------------------------//
int byteused1;
EnCode ec;
//ZeroMemory(sendBuf, BUF_SIZE);
ec.IonoEncode(time, interval1, height,deg,ord,c,s,sendBuf,&byteused1);
//------------------------------------ 11、//
time++;
height++;
deg++;
ord++;
/*
int N=deg;
int M=ord;
int CNum=(2*N+2-M)*(M+1)/2;
int SNum=(2*N+1-M)*M/2;
for (int i=0;i 12、t i=0;i 13、 Client.cpp : Defines the entry point for the console application.
#include "winsock2.h"
#include 14、 //WSADATA变量
SOCKET sHost; //服务器套接字
SOCKADDR_IN servAddr; //服务器地址
char buf[BUF_SIZE]; //接收数据缓冲区
char bufRecv[BUF_SIZE]={'0'};
int retVal; //返回值
//初始化套结字动态库
if (WSAStartup(MAKEWORD(2,2), &wsd) ! 15、 0)
{
cout << "WSAStartup failed!" << endl;
return -1;
}
//创建套接字
sHost = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(INVALID_SOCKET == sHost)
{
cout << "socket failed!" << endl;
WSACleanup();//释放套接字资源
return -1;
}
//设置服务器地址
servAddr 16、sin_family =AF_INET;
servAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
servAddr.sin_port = htons((short)4999);
int nServAddlen = sizeof(servAddr);
//连接服务器
retVal=connect(sHost,(LPSOCKADDR)&servAddr, sizeof(servAddr));
if(SOCKET_ERROR == retVal)
{
cout << "conne 17、ct failed!" << endl;
closesocket(sHost); //关闭套接字
WSACleanup(); //释放套接字资源
return -1;
}
int c;
while(true){
//向服务器发送数据
ZeroMemory(buf, BUF_SIZE);
cout << " 向服务器发送数据: ";
cin >> buf;
retVal = send(sHost, buf, strlen(buf), 0);
if (SOCKET_ERRO 18、R == retVal)
{
cout << "send failed!" << endl;
closesocket(sHost); //关闭套接字
WSACleanup(); //释放套接字资源
return -1;
}
//RecvLine(sHost, bufRecv);
ZeroMemory(bufRecv, BUF_SIZE);
c=recv(sHost, bufRecv,1030 , 0);
cout << endl <<"从服务器接收数据:"< 19、< 20、c;
int i;
dc.IonoDecode((unsigned char*)(bufRecv+decodeIndex),c-decodeIndex,tcode,&bytesused,&interval,&MessLength);
//MessLength为有效数据字节数
if(c-decodeIndex<(3+MessLength+3))
{
printf("解码完成\n");
break;
}
if (bytesused==0)
{
printf("解码完成\n");
br 21、eak;
}
decodeIndex+=bytesused;
printf("tcode.MessNum:%d\ttcode.EpochTime:%d\n",int(tcode.MessNum),int(tcode.EpochTime));
printf("球谐系数C:");
int N=tcode.SpheHarmoDeg;
int M=tcode.SpheHarmoOrd;
int CNum=(2*N+2-M)*(M+1)/2;
int SNum=(2*N+1-M)*M/2;
for(i=0;i






