2012-04-08 70 views
0

我正在编写一个混合应用程序,该应用程序应该使用TCPClient连接到我的服务器,但在编译时我得到了Type or namespace TcpClient does not exist...,尽管我知道我包含正确的库(如这段代码几乎是从我的C#windows窗体客户端直接复制的)。TcpClient在Blend中不可用

我可能会写它在一个普通的套接字,但如果有人知道为什么这不显示或我怎么能做到这一点,这将使我的生活更轻松。

感谢;)

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Shapes; 
using System.Net.Sockets; 
using System.IO; 
using System.Net; 

namespace CCClient 
{ 
    public partial class CCClient 
    { 
     public CCConnection Connection = null; 

     public CCClient() 
     { 
      if ((this.Connection = new CCConnection(IPAddress.Parse("-_-"), 9001)) == null) 
      { 
       throw new Exception("Could not instantiate Client Connection to Server."); 
      } 
      else 
      { 
       this.Connection.WriteLine("Role: client"); 
       this.Connection.WriteLine("Stream: test"); 
      } 
     } 
    } 

    public class CCConnection 
    { 
     public TcpClient HostConnection = null; 
     public StreamWriter HostWriter = null; 
     public StreamReader HostReader = null; 

     public CCConnection(IPAddress Host, int Port) 
     { 
      if (Host == null || Port == 0) 
      { 
       throw new Exception("Could not instantiation CCConnection. Host or Port are invalid."); 
      } 
      else 
      { 
       try 
       { 
        this.HostConnection = new TcpClient(); 
        this.HostConnection.Connect(Host, Port); 
        this.HostWriter = new StreamWriter(this.HostConnection.GetStream()); 
        this.HostReader = new StreamReader(this.HostConnection.GetStream()); 
       } 
       catch (Exception e) 
       { 
        throw new Exception("Could not instantiate CCConnection. Exception encountered.\n" + e.Message); 
       } 
      } 
     } 

     public void WriteLine(String Argument) 
     { 
      if (!String.IsNullOrWhiteSpace(Argument)) 
      { 
       this.HostWriter.WriteLine(Argument); 
       this.HostWriter.Flush(); 
       return; 
      } 
     } 

     public String ReadLine() 
     { 
      return this.HostReader.ReadLine(); 
     } 
    } 
} 
+0

洛尔并在调查后,System.Net.Socket类只能异步使用? What's – DigitalJedi805 2012-04-08 07:25:16

+0

你的目标是什么平台/框架?如果你的目标是Silverlight,那么是的:你需要使用异步 – 2012-04-08 07:56:22

回答

2

MSDN使它足够了这个类是只在.NET全/客户端配置文件提供清晰,

http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspx

它不可在Silverlight或XNA因为微软认为你永远不需要它。

你可以参考Silverlight的文章,看到的是提供什么样的网络支持,

http://msdn.microsoft.com/en-us/library/cc645032%28v=vs.95%29.aspx

,也许你可以使用套接字来达到同样的目标,

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.95%29.aspx