服务器和客户端建立SOCKET连接之后,服务器怎么知道客户端的IP啊?

jhlcss 2003-10-09 12:05:14
就是说假设服务器端要给客户端发消息,肯定要知道客户端的IP和端口,怎么知道啊,有没有例子?谢谢各位。
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangbc 2003-10-19
  • 打赏
  • 举报
回复
关注
阿拉丁 2003-10-16
  • 打赏
  • 举报
回复
如果是同步的话 听到之后创建socket 是自动绑定的
ArLi2003 2003-10-11
  • 打赏
  • 举报
回复
socket a;
socket b;

你保存这二个句柄成为全局变量,应答时引用:
Socket a = listener.AcceptSocket();
第二个应答
Socket b = listener.AcceptSocket();

这就有了A和B 二个socket 句柄了吧(更多的话你可以将它们保存到arraylist),那么你随时可以用

a.send

b.send

不需要考虑IP,因为在tcp/ip 协议上,一个socket 必定也只能绑着一个IP
jhlcss 2003-10-10
  • 打赏
  • 举报
回复
A->S->B,服务器怎么识别出哪一条连接是和B的连接?
ArLi2003 2003-10-10
  • 打赏
  • 举报
回复
tcp/ip 讲究的是ip 2 ip 所以都是在保持着激活状态直到timeout 或close

你只要注意一下将连接的句柄保存起来你可以随便用它进行 send
jhlcss 2003-10-09
  • 打赏
  • 举报
回复
A,B的连接是一直保持的,但是如果A给B发消息,服务器和B是不是要重新建立一次连接啊。要不服务器,怎么给B发啊,虽然B和服务器仍然有SOCKET连接,但是这个连接怎样才能识别出来啊。
windinwing 2003-10-09
  • 打赏
  • 举报
回复
Socket连接上后就一直保持连接的哇 m_pClientSocket.RemoteEndPoint.ToString())取得主机和端口号等信息
ParseIP_from_EndPoint(m_pClientSocket.RemoteEndPoint.ToString())


转换这IP
public static string ParseIP_from_EndPoint(string endpoint)
{
string retVal = endpoint;

int index = endpoint.IndexOf(":");
if(index > 1)
{
retVal = endpoint.Substring(0,index);
}

return retVal;
}
windinwing 2003-10-09
  • 打赏
  • 举报
回复
TCP本来就是保持连接的,如果用UDP才需要查找一次IP和端口
TCP服务器端不用重新建立连接,建立连接后就可以直接Send了
jhlcss 2003-10-09
  • 打赏
  • 举报
回复
但是端口号可是随时变得啊
LoveRose 2003-10-09
  • 打赏
  • 举报
回复
个人认为客户端与服务器端建立连接就应该是把类似ip.port等信息发到服务器上的

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧