SOCKET.Accept()方法如何获取远程端IP

kuohai 2009-12-09 09:56:29
SOCKET.Accept()方法如何获取远程端IP,即新建立连接的IP和端口?
...全文
621 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2009-12-09
  • 打赏
  • 举报
回复
除非你的事件不会并行触发,同时你的事件结束时立刻关闭Socket,否则就会出现抢占端口的情况。
qldsrx 2009-12-09
  • 打赏
  • 举报
回复
要用同一个本地端口的话,就用一个Socket吧,何必每个事件中单独new一个呢?
ali4130000 2009-12-09
  • 打赏
  • 举报
回复
窗口load的时候初始化就行了
kuohai 2009-12-09
  • 打赏
  • 举报
回复
我定义了一个socket c为全局变量,以后再各个事件中多c进行了初始化,c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
然后再用绑定的话c.Bind(localIPE);就提示出错.
通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
ali4130000 2009-12-09
  • 打赏
  • 举报
回复
使用bind方法绑定端口
qldsrx 2009-12-09
  • 打赏
  • 举报
回复
用Socket.Bind方法
public void Bind(
EndPoint localEP
)


参数
localEP
类型:System.Net.EndPoint

要与 Socket 关联的本地 EndPoint。
liherun 2009-12-09
  • 打赏
  • 举报
回复
学习网络编程
ali4130000 2009-12-09
  • 打赏
  • 举报
回复
使用bind方法绑定端口
kuohai 2009-12-09
  • 打赏
  • 举报
回复
如何让获取到的端口为固定端口呢?
ali4130000 2009-12-09
  • 打赏
  • 举报
回复
Socket client = newsock.Accept();
IPEndPoint clientip = (IPEndPoint)client.RemoteEndPoint;
Console.WriteLine("已连接的客户端:" + clientip.Address + ",端口" + clientip.Port);
kuohai 2009-12-09
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,再问一句,如何如何让发送端的端口固定呢?
xupeihuagudulei 2009-12-09
  • 打赏
  • 举报
回复
不对,顶
qldsrx 2009-12-09
  • 打赏
  • 举报
回复
SOCKET.Accept()将返回Socket对象,你通过该对象的RemoteEndPoint,即可获取远程IP。

Console.WriteLine ("I am connected to " + IPAddress.Parse (((IPEndPoint)s.RemoteEndPoint).Address.ToString ()) + "on port number " + ((IPEndPoint)s.RemoteEndPoint).Port.ToString ());
qldsrx 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zetee 的回复:]

[/Quote]
对什么对,看热闹啊
zetee 2009-12-09
  • 打赏
  • 举报
回复
烈火蜓蜻 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kuohai 的回复:]
谢谢楼上的兄弟,再问一句,如何如何让发送端的端口固定呢?
[/Quote]

那简单啊,判断发送端的端口是不是某个号,如果不是,就不让发送端连接呗,如果想连就用固定的端口号
hhc123 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 kuohai 的回复:]
如果客户端与服务器建立socket连接,为了互相传送信息,但是信息之间是有时间间隔的,请问用建立多次连接吗?还是建立一次连接就行了?
[/Quote]
没有断掉的话一次就够用了
hhc123 2009-12-09
  • 打赏
  • 举报
回复
Socket newClient = myListener.Accept();
newClient.RemoteEndPoint;这个就是
kuohai 2009-12-09
  • 打赏
  • 举报
回复
如果客户端与服务器建立socket连接,为了互相传送信息,但是信息之间是有时间间隔的,请问用建立多次连接吗?还是建立一次连接就行了?
kuohai 2009-12-09
  • 打赏
  • 举报
回复
噢,的确是,明白了,可是现在如果把Socket设置成全局对象,每次事件就不再重新连接了,可是只能send 和 receive一次信息,不知道这是为什么?

111,123

社区成员

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

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

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