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


#include  
#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, &WsaData); 
    if (err == SOCKET_ERROR) 
	{ 
    Displays(hWnd,"WSAStartup Failed"); 
	return 0; 
	} 
	Displays(hWnd,"正在初始化网络..........."); 
	memset(&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 *) &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(),&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