#include "stdio.h"
#include "winsock2.h"
#include "stdlib.h"
#include "string.h"
#pragma comment(lib,"Wsock32.lib")
#define _MagicNumberT 0xfffe3141
#define _MagicNumberU 0xffef3141
#define _SNDID_Len 32
#define _PostData_Len 256
typedef struct _A1_Packet
{
DWORD magicnum;
unsigned char SNSID[_SNDID_Len];
unsigned char PostData[_PostData_Len];
}_A1_Packet;
void main()
{
SOCKET TCPSocket,UDPSocket;
WSADATA lpwsdata;
char str[292];
int i=0,recieve;
struct _A1_Packet pkgBuffer={_MagicNumberT,"M200872040\0"};
struct sockaddr_in server;
DWORD a=_MagicNumberU;
memcpy(str,&pkgBuffer,sizeof(pkgBuffer));
if(WSAStartup(MAKEWORD(2,2),&lpwsdata))//加载winsock库
{
printf("winsock无法初始化!\n");
}
server.sin_family=AF_INET;
server.sin_port=htons(3801);
server.sin_addr.s_addr = inet_addr("202.112.20.184");
i=sizeof(server);
TCPSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(connect(TCPSocket, (struct sockaddr *)&server, sizeof(server))==SOCKET_ERROR)//连接tcp服务器
{
printf("connect error!!");
}
if(send(TCPSocket, str, sizeof(pkgBuffer), 0)==SOCKET_ERROR)//发送
{
printf("send error!!");
}
do
{
recieve=recv(TCPSocket, str, sizeof(pkgBuffer), 0);//接收回复
if(recieve==SOCKET_ERROR)
printf("recv Error!\n");
}while(recieve!=0);
printf("%s\n",&str[36]);
UDPSocket= socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
memcpy(str,&a,sizeof(a));
if (sendto(UDPSocket,str,sizeof(str),0,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR)
{
printf("send error!!!");
}
if ( recvfrom(UDPSocket,str,sizeof(str),0,(struct sockaddr *)&server,&i) == SOCKET_ERROR)
{
printf("recieve error!!!");
}
printf("%s\n",&str[4]);
WSACleanup();
}