2013-03-07 26 views
2

好吧,這是一個非常簡單的問題,但它讓我非常生氣,以至於不得不喝完一大罐水讓自己冷靜下來。我只是想讓我的客戶向我的服務器問好,但不能

編輯

增加C#中的標籤太多,一個C#的答案將被罰款了。

基本上我在微軟的網站http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx上實現這個異步客戶端/服務器的例子。

現在我有一個項目實例運行服務器和服務器是好的,只是等待連接。

我想了解.NET中的asynhronous通信模型,我只是希望我的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和其他方法,我相信我很快就會理解,但現在它令人難以置信地混淆。

請保存我的筆記本電腦戴帽子和幫助。只是一個簡單的「你好」字符串到服務器,我的生活將是一個快樂的。 謝謝

+3

我不得不喝兩個怪物只是通過你的問題:) – mellamokb 2013-03-07 22:51:13

+2

喝的水「壺」只是讓我覺得臃腫,不提高自己的平靜做到這一點。 – 2013-03-07 23:05:20

+1

我添加了一些更多的標籤,因爲這不是一個真正的C#或vb.net問題,而是與異步通信相關的問題 – EdmundYeung99 2013-03-07 23:05:36

回答

2

我用你的代碼來創建一個例子,唯一的辦法,我可以讓它給我一個空引用異常是如果我沒有正確實例化套接字。但是沒有看到你的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); 
+0

OH YES!那是行得通的,那是我的一半問題解決了......現在那個討厭的「你好」消息怎麼樣? :) – 2013-03-07 23:23:12

相關問題