一、本地ip和端口
char buf[BUF_SIZE];
sockaddr_in name;
int nlen = sizeof(name);
getsockname(g_cltSkt,(sockaddr*)&name,&nlen);
sprintf(buf,"(%s:%d):",inet_ntoa(name.sin_addr),ntohs(name.sin_port));
g_prefix = buf;
二、远程ip和端口
s = accept(g_lsnSkt,NULL,NULL);
getpeername(s,(sockaddr*)&name,&namelen);
sprintf(buf,"A guest %s:%d has joined us./r/n",inet_ntoa(name.sin_addr),
ntohs(name.sin_port));
三、多行滚动条刷新方法
void RefreshScreen(HWND hWnd)
{
//先贴字
HWND subWnd;
subWnd = GetDlgItem(hWnd,IDC_TEXT);
SetWindowText(subWnd,g_text.c_str());
//再设置滚动条
int pos,n;
pos = n = 0;
while((pos = g_text.find('/n',pos)) != -1)
{
++pos;
++n;
}
SendMessage(subWnd,EM_LINESCROLL,0,n);//倒数第二个参数为行滚动量、倒数第一个参数为列滚动量
}