#include "WinSock2.h"
#include <stdio.h>
#include <string>
using namespace std;
#define LRDLLTEST_API __declspec(dllexport)
extern "C" LRDLLTEST_API int ReceiveData(unsigned int m_DataSocket, char *DataBuf, int nlength);
extern "C" LRDLLTEST_API int Close(unsigned int m_DataSocket);
extern "C" LRDLLTEST_API unsigned int Connect(char * ulAddress, int iPort);
extern "C" LRDLLTEST_API int SendData( unsigned int m_DataSocket,char* pcData, int iLength);
#include "stdafx.h"
#include "SocketInter.h"
int ReceiveData(unsigned int m_DataSocket, char *DataBuf, int nlength)
{
memset( DataBuf, 0x00, nlength);
return recv(m_DataSocket , DataBuf, nlength, 0);
}
int Close(unsigned int m_DataSocket)
{
closesocket(m_DataSocket);
WSACleanup();
return TRUE;
}
unsigned int Connect(char * ulAddress, int iPort)
{
struct sockaddr_in serv_addr;
//加载套接字
WORD wVersionRequested;
WSADATA wsaData;
int err;
SOCKET m_DataSocket;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if(err != 0)
{
return FALSE;
}
if (LOBYTE(wsaData.wVersion) != 1 ||HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return FALSE;
}
if ((m_DataSocket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
cout << "创建socket号失败!" <<endl;
return FALSE;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(iPort);
serv_addr.sin_addr.s_addr = inet_addr( ulAddress );
if (connect(m_DataSocket, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1)
{
cout << "连接服务器失败!" <<endl;
return FALSE;
}
return m_DataSocket;
}
int SendData( unsigned int m_DataSocket,char* pcData, int iLength)
{
int iData = send(m_DataSocket, pcData, iLength, 0) ;
if( iData <= 0 )
{
cout<< "数据发送失败!请确认!" <<endl;
}
return iData;
}
return recv(m_DataSocket , DataBuf, nlength, 0);
}
int Close(unsigned int m_DataSocket)
{
closesocket(m_DataSocket);
WSACleanup();
return TRUE;
}
unsigned int Connect(char * ulAddress, int iPort)
{
struct sockaddr_in serv_addr;
//加载套接字
WORD wVersionRequested;
WSADATA wsaData;
int err;
SOCKET m_DataSocket;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if(err != 0)
{
return FALSE;
}
if (LOBYTE(wsaData.wVersion) != 1 ||HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return FALSE;
}
if ((m_DataSocket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
cout << "创建socket号失败!" <<endl;
return FALSE;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(iPort);
serv_addr.sin_addr.s_addr = inet_addr( ulAddress );
if (connect(m_DataSocket, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1)
{
cout << "连接服务器失败!" <<endl;
return FALSE;
}
return m_DataSocket;
}
int SendData( unsigned int m_DataSocket,char* pcData, int iLength)
{
int iData = send(m_DataSocket, pcData, iLength, 0) ;
if( iData <= 0 )
{
cout<< "数据发送失败!请确认!" <<endl;
}
return iData;
}