如何获得客户端IP和端口号
AcceptSocket = accept( ServerSocket, NULL, NULL );
当accept已经接受了客户机的连接,此时服务器端怎样获得客户端的IP和端口号呢?
问题点数:100、回复次数:13Top
1 楼dongfa(一桶江湖( http://www.codelive.net ))回复于 2005-05-13 09:48:40 得分 10
后面两个参数就是.不要填NULLTop
2 楼bearnedzq(晒太阳的懒猫)回复于 2005-05-13 10:07:14 得分 0
后面的参数是struct in_addr 和 长度,这个参数好复杂啊,到底怎么用呢Top
3 楼lichuanfeng11()回复于 2005-05-13 10:10:45 得分 10
sockaddr_in sainClientName;
int iNameLen = sizeof(sainClientName);
CString strIP;//客户段IP
getpeername(pThis->sockAccept[pThis->iUsed],(sockaddr*)&sainClientName,&iNameLen);
strIP.Format("%s",inet_ntoa(sainClientName.sin_addr));
Top
4 楼aoosang(智慧的鱼)回复于 2005-05-13 10:20:39 得分 10
同意楼上的方法Top
5 楼aoosang(智慧的鱼)回复于 2005-05-13 10:21:54 得分 10
如何根据socket知道和本机相连的对方机器的IP
sockaddr_in addr;
CString strIP;
int n = sizeof(addr);
int ff =getpeername(sock,(LPSOCKADDR)&addr,&n);
strIP = inet_ntoa(addr.sin_addr);
Top
6 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-05-13 10:28:45 得分 10
yesTop
7 楼koko1998(高价购买火车票)回复于 2005-05-13 10:50:05 得分 10
markTop
8 楼xyw2278(启明星)回复于 2005-05-13 10:59:18 得分 10
sockaddr_in addr;
int n = sizeof(addr);
AcceptSocket = accept( ServerSocket, (LPSOCKADDR)&addr, &n);
CString strIP = inet_ntoa(addr.sin_addr);
int nPort = addr.sin_port;
Top
9 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-05-13 14:14:12 得分 10
accept中可以得到地址结构等
也可以用getpeername来获得Top
10 楼cxy89173(晓勇)回复于 2005-05-13 19:24:10 得分 5
study.Top
11 楼T97102003(池塘里的水手)回复于 2005-05-13 19:26:46 得分 5
markTop
12 楼krh2001(边城浪子)回复于 2005-05-13 19:30:56 得分 5
来晚了, 楼上几位讲 TMD 这么详细! 没得说了~Top
13 楼cxy89173(晓勇)回复于 2005-05-13 19:33:10 得分 5
那么新创建的会话socket,他的发送接收端口 是原来监听socket所bind的端口吗?Top




