关于窗体程序调用控制台程序,该怎么处理
关于窗体程序调用控制台程序
这里总能帮我解决很多问题。
在同一个解决方案中,我编写了一个控制台程序(功能是与服务器进行网络连接,然后收发数据),且已能运行,然后想在窗体程序中调用控制台编译生成的exe文件,发现控制台的exe文件执行完网络连接的功能后就停止不动了,当我关掉图形界面后,控制台程序才能收发数据。请大神们支招
窗体代码如下:
控制台主程序如下:
------解决思路----------------------
你得确认下netConnect.Connect是否成功,照这样看来很可能并没有连接成功而一直阻塞在那里,原因可能是你窗体程序也有服务器操作,两个程序抢了端口,或者服务器连接数量有限,这只是猜测,具体你得自己查
------解决思路----------------------
连接能成功,但Write没反应,你抓下TCP的包看看,是没发出去还是发出去服务器没响应,这种错只能1件事1件事排除
这里总能帮我解决很多问题。
在同一个解决方案中,我编写了一个控制台程序(功能是与服务器进行网络连接,然后收发数据),且已能运行,然后想在窗体程序中调用控制台编译生成的exe文件,发现控制台的exe文件执行完网络连接的功能后就停止不动了,当我关掉图形界面后,控制台程序才能收发数据。请大神们支招
窗体代码如下:
private void button3_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = @"D:\FendCoreFend\bin\Debug\FendCoreFend.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
}
控制台主程序如下:
static void Main(string[] args)
{
logger.Info("程序启动");
NetConnect netConnect = new NetConnect();
netConnect.Connect(10000); //网络连接,调用的子函数
netConnect.Write(StartMsg); //下发的数据
Console.WriteLine("下发:"+startMsg);
netConnect.HandleStart(); //读取数据
Console.Read();
}
------解决思路----------------------
你得确认下netConnect.Connect是否成功,照这样看来很可能并没有连接成功而一直阻塞在那里,原因可能是你窗体程序也有服务器操作,两个程序抢了端口,或者服务器连接数量有限,这只是猜测,具体你得自己查
------解决思路----------------------
连接能成功,但Write没反应,你抓下TCP的包看看,是没发出去还是发出去服务器没响应,这种错只能1件事1件事排除