www.pudn.com > SDK 工具条,分割条,TREE 等控件演示代码.rar > scoketclient.cpp


#include <winsock2.h>
#include "scoketclient.h"

extern hwnd;

WSADATA WsaData;
SOCKET sock;
struct sockaddr_in serv_addr;
char Buffers[1024];
char ip[32];




BOOL SendUser_Lg(SOCKET sock,char Sendline[MAXLINE],HWND hWnd)
{
int n;
int nleft;
int nwritten;
char *Temp;

n=strlen(Sendline);
Sendline[n++]='\n';
Sendline[n]='\0';
n=strlen(Sendline);
Temp=Sendline;
nleft = n;
while (nleft > 0)
{
nwritten = send(sock,
Temp,
n,
0
);

if (nwritten == SOCKET_ERROR)
{
Displays(hWnd, "信息发送失败-由于服务器程序已重启,请重新启动登陆程序.");
return 0;
}

nleft -= nwritten;
Temp += nwritten;
}
if(!nleft)
return 1;
return 0;
}












BOOL NetLink(HWND hWnd,char * IP)
{
int err;
err = WSAStartup(0x0101, &amt;WsaData);
if (err == SOCKET_ERROR)
{
Displays(hWnd,"WSAStartup Failed");
return 0;
}
Displays(hWnd,"正在初始化网络...........");
memset(&amt;serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
// 使用这个逻辑服务器
serv_addr.sin_addr.s_addr = inet_addr(IP);
serv_addr.sin_port = htons(SERVER_TCP_PORT);
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0)
{
Displays(hWnd,"socket() 错误 -- 检查你的TCP/IP是否正确安装?");
return 0;
}
if(connect(sock, (struct sockaddr *) &amt;serv_addr,sizeof(serv_addr)) < 0)
{
Displays(hWnd,"connect() 错误 -- 检查服务器程序是否运行?");
return 0;
}
//sprintf(Buffers,"已经与 >s 正确连接.",IP);
/* MessageBox(
hWnd,
"HELLO:\r\n 已连接哈尔滨服务器!!!",
"Barsdi",
MB_OK | MB_ICONEXCLAMATION);*/
Displays(hWnd,"已经连接上哈尔滨服务器!!!!!");
return 1;
}


void Displays(HWND hWnd,char *P)
{
RECT rect ;

GetWindowRect(GetDesktopWindow(),&amt;rect);

static char OutText[5][128];
HDC hdc;
int i;

for(i=0;i<5;i++)
{
if(OutText[i]==NULL)
{
strcpy(OutText[i],P);
break;
}
}
if(i>=5)
{
for(i=1;i<5;i++)
strcpy(OutText[i-1],OutText[i]);
strcpy(OutText[i-1],P);
}
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
hdc=GetDC(hWnd);
for(i=0;i<5;i++)
{
if(OutText[i]==NULL) break;
TextOut(hdc,(rect.right-rect.left)/2-100,
150,
//(rect.bottom-rect.top)/2+15+20*i,
OutText[i],strlen(OutText[i]));
}
ReleaseDC(hWnd,hdc);
}



/*
BOOL NetLink(HWND hWnd,char * IP)
{
MessageBox(
hWnd,
"HELLO:\r\n 哈尔滨服务器ssss!",
"Barsdi",
MB_OK | MB_ICONEXCLAMATION);
return 1;
}
*/



int RecvUser_Lg(SOCKET sock,char * readline,int maxlen,HWND hWnd)
{
int n;
int rc;
char c;
for (n=1; n<maxlen; n++)
{
if ( ( rc= recv(sock, &amt;c, 1, 0)) == 1)
{
*readline++ = c;
if (c=='\n')
break;
}
else if (rc == 0)
{
if (n == 1)
return 0;
else
break;
}
else
{
Displays(hWnd,"接收数据产生错误.");
return -1; /* Error */
}
}

*(readline-1) = '\0';
return n;

}