【发布时间】:2017-09-22 20:27:58
【问题描述】:
经过几次尝试,我无法让 StreamWriter 正确构建/工作,所以我做的事情根本上是错误的(C#、Visual Studio)
我有一个现有的 TCP 客户端,它连接并充当阅读器,它可以正常工作 -
private System.Net.Sockets.NetworkStream ns;
private System.IO.StreamReader sr;
private string strIP;
private string strPort;
public System.Net.Sockets.TcpClient tc;
public Socketclient(Reader.Search objSearch)
{
m_search = objSearch;
}
public void EthernetConnection()
{
try
{
bool flag = !System.IO.File.Exists(System.Windows.Forms.Application.StartupPath + "\\IPAddress.txt");
if (!flag)
{
System.IO.TextReader textReader = System.IO.File.OpenText(System.Windows.Forms.Application.StartupPath + "\\IPAddress.txt");
string s = textReader.ReadLine();
textReader.Close();
char[] chArr = new char[] { ';' };
string[] sArr = s.Split(chArr);
strPort = sArr[0];
strIP = sArr[1];
flag = strIP == System.String.Empty || strPort == System.String.Empty;
if (!flag)
{
int i = System.Convert.ToInt16(strPort);
tc = new System.Net.Sockets.TcpClient(strIP, i);
flag = !tc.Connected;
if (!flag)
{
ns = tc.GetStream();
sr = new System.IO.StreamReader(ns);
m_search.threadClient = new System.Threading.Thread(new System.Threading.ThreadStart(ReceiveData));
m_search.threadClient.Priority = System.Threading.ThreadPriority.Lowest;
m_search.threadClient.Name = "Ethernet Thread";
}
然后我想添加(在另一个属于同一应用程序的 .cs 中)一个 StreamWriter 线程以将一些字符写回同一个端口,然后关闭 StreamWriter 线程(让阅读器运行)-
private System.IO.StreamWriter sw;
string line = "TH1/r/n";
using (StreamWriter sw = new StreamWriter(ns));
sw.WriteLine(line);
sw.Flush();
sw.Close();
其中,不知何故(我认为)需要参考
ns = tc.GetStream();
感谢任何想法
问候 活跃
【问题讨论】:
-
听起来这个问题不是关于
StreamWriter或tcp,而是关于基本类设计?因此,如果没有看到您的项目,这有点宽泛且难以分辨。如果您想在整个班级中访问sw,请将其设为班级的字段。如果您甚至想从类外部(不同的 .cs 文件)访问它,请创建一个公开该值的公共属性。但这是基本的 c# 知识,在问这里之前你应该知道,但也许我误解了这个问题。 -
How do I reference the already running client (in a separate .cs)当您建立从客户端到服务器的连接时,您需要存储TcpClient引用以供将来访问。你这样做吗?如果是,那么tc或ns应该存在并且在您访问和调用sw = new System.IO.StreamWriter(tc.GetStream());或sw = new System.IO.StreamWriter(ns);的范围内。如果没有,那么我们需要查看所有相关代码 -
看起来您正在发布从您的代码中组合在一起的块。我们需要查看实际的方法或类。你发布它的方式,它看起来像是在上下文中。
-
我需要一个简单易懂的 StreamWriter 例子
-
您发布了代码的不完整部分,其中包含不相关的另一部分。请修改您的问题并写清楚,请