所以我对这个“套接字”编程很陌生,似乎有些东西我从根本上误解了......
我使用的服务器的文档写得很糟糕,但说它使用“基于事件”的“流式套接字连接”......服务器在本地网络上。
这是我的第一个天真的程序流程(没有异步或任何东西!):
…………
1)首先我需要一个套接字......没问题......我明白了:)
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
2)然后我连接它......也没问题:)
s.Connect("10.10.10.36", 6009);
3)现在我有了连接,并且有了服务器提供的新本地 EP ......类似于“10.10.10.59:56231”......所以我尝试绑定到那个 EP:
s.Bind (s.LocalEndPoint);
之后,我需要倾听并开始接受连接:
s.Listen (10);
s.Accept ();
…………
“s.Bind (s.LocalEndPoint);” 失败(我在没有调试器的情况下运行它):
…………
Unhandled Exception:
System.Net.Sockets.SocketException: Invalid arguments
at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00065] in /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/System/System.Net.Sockets/Socket.cs:1115
at RFID.MainClass.Main (System.String[] args) [0x0002b] in /Users/jab/Projects/RFID/RFID/Program.cs:17
[ERROR] FATAL UNHANDLED EXCEPTION: System.Net.Sockets.SocketException: Invalid arguments
at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00065] in /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/System/System.Net.Sockets/Socket.cs:1115
at RFID.MainClass.Main (System.String[] args) [0x0002b] in /Users/jab/Projects/RFID/RFID/Program.cs:17
…………
现在我知道这是一个非常原始的问题,但我需要指出正确的方向:)
TIA。