socket "在其上下文中 该请求的地址无效。"

l171147904 2010-04-23 04:32:08
提示错误:"在其上下文中 该请求的地址无效。"
连接的是服务器IP,ping 的通!

Socket receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
IPAddress ipAddress = IPAddress.Parse(ip);//"192.168.188.232"
receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(ipAddress, port);//2010
receiveSocket.Bind(endpoint); //这里报错
receiveSocket.Listen(10);
}
catch
{
receiveSocket.Close();
}
...全文
22935 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinleisnake 2010-04-27
  • 打赏
  • 举报
回复
顶楼上的,调用你发送消息到服务器的那个socket的receive就可以接收服务器回发消息
willyouasd 2010-04-26
  • 打赏
  • 举报
回复
ip错了
确定一下实例是不是null
jimeixuehua 2010-04-26
  • 打赏
  • 举报
回复
应该是防火墙的问题
wosizy 2010-04-26
  • 打赏
  • 举报
回复
请求的IP地址在你的机子上找不到。也就是说 在绑定IP地址的时候,此IP不在你的机子上
需要处理IP

还有就是 检查
1、开放监听端口
2、如果不同的网段,使用路由器连接各电脑,只要能ping通,就能连接上;
3、大部分是因为端口的问题所以导致连接失败;
蹊跷路人 2010-04-26
  • 打赏
  • 举报
回复
查下端口是否 被占用~!?
l171147904 2010-04-26
  • 打赏
  • 举报
回复
receiveSocket.Connect(192.168.188.232, 2010);
receiveSocket.Listen(10);//报错误:已经连接的套接字上做了一个连接
l171147904 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lextm 的回复:]
lz应该仔细学习什么是Bind,
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.bind.aspx
这里只能使用本机的IP地址,远端的是不行的。

远端机器IP你需要Connect过去。
[/Quote]

您说出了点东西。。。谢谢!
我发送一个消息到服务器,服务器给我回发消息!
我需要接收服务器回发消息,,,
服务器:192.168.188.232:2010
我应该监听 哪个IP呢?


Connect 又如何 Connect
lextm 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 l171147904 的回复:]
我发送一个消息到服务器,服务器给我回……
[/Quote]

你发送消息到服务器的时候,一个socket channel已经建立起来了,就是你本机IP加一个随机端口连接到服务器IP加2010。服务器返回消息的时候一般都会通过同一channel回到你本机。

Connect完成之后Tcp的话你就可以使用NetworkStream来发送和接受消息了。

本来都是最基本的Socket操作,好好看看相关范例就好了,居然还要花这么多时间泡论坛。
yuanhuiqiao 2010-04-26
  • 打赏
  • 举报
回复
yingxiongqianjin 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lextm 的回复:]
lz应该仔细学习什么是Bind,
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.bind.aspx
这里只能使用本机的IP地址,远端的是不行的。

远端机器IP你需要Connect过去。
[/Quote]
应该好好看看这个回复
zhuazhuqingchong 2010-04-26
  • 打赏
  • 举报
回复
错误很明显了,自己查一哈再
lextm 2010-04-24
  • 打赏
  • 举报
回复
lz应该仔细学习什么是Bind,
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.bind.aspx
这里只能使用本机的IP地址,远端的是不行的。

远端机器IP你需要Connect过去。
Jiacker 2010-04-23
  • 打赏
  • 举报
回复
应该是连接不上服务器的socket地址:192.168.188.232:2010,检查服务器端的防火墙等等
wuyq11 2010-04-23
  • 打赏
  • 举报
回复
检查IP,端口映射,防火墙
xiaogug01 2010-04-23
  • 打赏
  • 举报
回复
服务器端监听2010端口了么?
xiaogug01 2010-04-23
  • 打赏
  • 举报
回复
在本机可以吗?是不是你的端口没开啊?
l171147904 2010-04-23
  • 打赏
  • 举报
回复
提示错误:"在其上下文中 该请求的地址无效。"

写的很清楚了。。。非常感谢回答前能仔细看我的问题!

本机 和服务器 防火墙均关闭
IP准确!
本机IP 测试通过。。。

我发送一个消息到服务器,服务器给我回发消息!
我需要接收服务器回发消息,,,
服务器:192.168.188.232:2010
我应该监听 哪个IP呢?
Peter200694013 2010-04-23
  • 打赏
  • 举报
回复
换个IP测试下(比如用本机的试试)
Peter200694013 2010-04-23
  • 打赏
  • 举报
回复
查找一下你的防火墙设置,把和你程序相关的“规则”删除
zsuswy 2010-04-23
  • 打赏
  • 举报
回复
如果你的IP什么的都正确,并且端口也没有被其它程序占用。
那么,检查一下你的防火墙开了没有。。。。。。。
加载更多回复(2)

110,534

社区成员

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

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

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