如果我知道 SOCKET
(SOCKET 仅仅是一个handle, 就象我们定义时: SOCKET s_svr;)
我怎样通过它来得到相应的地址和端口号?
(SOCKET 仅仅是一个handle, 就象我们定义时: SOCKET s_svr;)
我怎样通过它来得到相应的地址和端口号?
解决方案 »
- 大侠们帮帮忙! 如何只让对话框屏蔽alt+f4热键???
- 用CopyFile传送文件,怎么判断传送完成?
- 请教一个关于MFC界面显示汉字乱码的问题
- 关于diret show的基本问题
- 不同进程同时读写同一个ini文件会出错吗?有没有什么属性设置防止不同进程同时访问同一ini文件
- 在ListBox加入文本该用什么函数?(SDK编程)
- 在使用SQL插入大批量数据时,如何关掉索引?数据插入结束后,如何建立索引???
- 请问怎么得到MDI子窗体当前的状态是最大化还是正常或最小化?时间紧急!在线等待!
- CList::Find(ARG_TYPE, POSITION ) 的参数ARG_TYPE为什么不能使用结构类型?
- 一个OnMouseMove函数,执行就开始说程序已停止工作,求纠错
- 请各位帮我看看做一个字符串相关的函数!分数多多!谢谢!!!
- LRESULT 是一种什么类型的变量,一般在什么场合使用?
name.sin_family = AF_INET;
int namelen = sizeof(sockaddr_in);
SOCKET s = (SOCKET)hMyHandle;
char szSockType[6][6] = { "NUL", "TCP", "UDP", "RAW", "RDM", "SEQ" };
iRet = getsockname( s, (sockaddr*)&name, &namelen );
if ( iRet != SOCKET_ERROR )
{
int sockType = 0;
int optlen = 4;
iRet = getsockopt( s, SOL_SOCKET, SO_TYPE, (char*)&sockType, &optlen );
printf("PID=%4d PORT=%5d %s\n", pHandleInfo->dwPid,
ntohs( name.sin_port ), szSockType[sockType] );
}
确实很好用,谢谢
另:
getsockname 取本地地址和端口
getpeername 取远程地址和端口