好吧,这是一个如此简单的问题,但它让我如此生气,以至于我不得不喝一整壶水来让自己平静下来。
编辑
也在标签中添加了 c#,c# 答案也可以。
基本上,我正在微软的网站 http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx 上实现这个异步客户端/服务器示例。 .
现在我有一个项目实例正在运行服务器,并且服务器正常,只是等待连接。
我正在尝试了解 .net 中的异步通信模型,我只是希望我的 client.vb 向在端口 2000 上本地监听的服务器打个招呼。
微软示例中的代码很长,我正在努力一点一点地理解它,但现在我只想要一个简单的几行代码来向我等待的服务器说“你好”。
Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)
Dim localEndPoint As New IPEndPoint(ipAddress, 2000)
clientSocket.BeginConnect("localhost", 2000, AddressOf ConnectionMade, clientSocket)
上面的方法不起作用,我得到一个空指针异常。微软示例中有很多回调、acceptcallback和其他方法,我相信我很快就能理解,但目前它非常令人困惑。
请让我不要戴上笔记本电脑的帽子和帮助。只需向服务器发送一个简单的“hello”字符串,我的生活就会很幸福。 谢谢
最佳答案
我使用你的代码创建了一个示例,而我可以让它给我一个空引用异常的唯一方法是如果我没有正确实例化套接字。但是如果没有看到 clientSocket 或 ConnectionMade 方法的声明,就很难判断。
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint (ipAddress, 2000);
Socket clientSocket = new Socket(SocketType.Raw, ProtocolType.IPv4);
clientSocket.BeginConnect("http://www.google.com", 80, new AsyncCallback(method), clientSocket);
关于c# - 我只想让我的客户向我的服务器打个招呼,但不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283300/