我只想让我的客户向我的服务器问好,但不能

Posted

技术标签:

【中文标题】我只想让我的客户向我的服务器问好,但不能【英文标题】:I just want my client to say hello to my server but can't 【发布时间】:2013-03-07 22:47:04 【问题描述】:

好吧,这是一个如此简单的问题,但它让我很生气,以至于我不得不喝一整壶水来让自己平静下来。

编辑

在标签中也添加了c#,c#的答案也可以。

基本上我在微软的网站http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx 上实现这个异步客户端/服务器示例。

现在我有一个运行服务器的项目实例,服务器正常,正在等待连接。

我试图了解 .net 中的异步通信模型,我只是希望我的 client.vb 向正在本地侦听端口 2000 的服务器打招呼。

microsoft 示例中的代码很长,我正在努力一点一点地理解它,但现在我只想要一个简单的几行代码来向我等待的服务器说“你好”。

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)

以上不工作,我得到一个空指针异常。 microsoft example中有很多callback,acceptcallback和其他方法,我相信我很快就会明白,但现在它令人难以置信的混乱。

请不要让我戴着我的笔记本电脑戴帽子和帮助。只需一个简单的“你好”字符串到服务器,我的生活就会很快乐。 谢谢

【问题讨论】:

我不得不喝两个怪物才能解决你的问题:) 喝“一壶”水只会让我感到臃肿,这并不能增强我的平静。 我添加了更多标签,因为这不是真正的 C# 或 vb.net 问题,而是与异步通信特别相关 你为什么不尝试使用 SignalR 呢? SignalR?我还没到。我只想向服务器发送一个“hello”字符串。 【参考方案1】:

我使用您的代码创建了一个示例,我可以让它给我一个空引用异常的唯一方法是如果我没有正确实例化套接字。但是如果没有看到您声明的 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);

【讨论】:

哦,是的!这行得通,我的问题解决了一半……现在那个讨厌的“你好”消息怎么样? :)

以上是关于我只想让我的客户向我的服务器问好,但不能的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 到 Java Web 应用程序

从服务器错误收到的 Signalr 关闭消息

如何使用 Chart.js 向我的折线图添加点击事件

我本机上的项目是8088端口,我只想让一台机器可以访问我的项目,其它的不可以。请问,这个怎么设置啊?

UIScrollView contentSize 不起作用

图像拖动不起作用