110,538
社区成员
发帖
与我相关
我的任务
分享
for (int i = 0; i < 100; i++)
{
System.IO.Pipes.NamedPipeServerStream mPipeServer = new System.IO.Pipes.NamedPipeServerStream("HE.OKCard", System.IO.Pipes.PipeDirection.InOut, 100, System.IO.Pipes.PipeTransmissionMode.Message, System.IO.Pipes.PipeOptions.Asynchronous);
//mPipeServer.WriteTimeout = 1000;
System.Threading.ThreadPool.QueueUserWorkItem(delegate
{
mPipeServer.BeginWaitForConnection((o) =>
{
System.IO.Pipes.NamedPipeServerStream mServer = (System.IO.Pipes.NamedPipeServerStream)o.AsyncState;
mServer.EndWaitForConnection(o);
System.IO.StreamReader mSR = new System.IO.StreamReader(mServer);
System.IO.StreamWriter mSW = new System.IO.StreamWriter(mServer);
string mResult = null;
StringBuilder mSB = new StringBuilder();
string mClientName = mServer.GetHashCode() + " " + mServer.GetImpersonationUserName();
while (true)
{
mResult = mSR.ReadLine();
if (mResult == null || mResult == "bye")
{
break;
}
else
{
mSB.AppendLine(mClientName + " : " + mResult);
RefreshTextBox(this.txtServer, mSB.ToString());
mSW.Write("Reply:" + mResult);
}
}
}, mPipeServer);
});
}
private System.IO.Pipes.NamedPipeClientStream mPipeClient1 = null;
if (mPipeClient1 == null)
{
mPipeClient1 = new System.IO.Pipes.NamedPipeClientStream("127.0.0.1", "HE.OKCard", System.IO.Pipes.PipeDirection.InOut, System.IO.Pipes.PipeOptions.Asynchronous, System.Security.Principal.TokenImpersonationLevel.None);
mPipeClient1.Connect();
}
mSW1 = new System.IO.StreamWriter(mPipeClient1);
mSR1 = new System.IO.StreamReader(mPipeClient1);
mSW1.AutoFlush = true;
mSW1.WriteLine(this.txtClient1.Text);
System.IO.Pipes.NamedPipeServerStream mPipeServer = new System.IO.Pipes.NamedPipeServerStream("HE.OKCard", System.IO.Pipes.PipeDirection.InOut, 100, System.IO.Pipes.PipeTransmissionMode.Message, System.IO.Pipes.PipeOptions.Asynchronous);
private void button10_Click(object sender, EventArgs e)
{
//mPipeServer.WriteTimeout = 1000;
System.Threading.ThreadPool.QueueUserWorkItem(delegate
{
AsyncCallback aa = null;
aa=(o) =>
{
System.IO.Pipes.NamedPipeServerStream mServer = (System.IO.Pipes.NamedPipeServerStream)o.AsyncState;
mServer.EndWaitForConnection(o);
System.IO.StreamReader mSR = new System.IO.StreamReader(mServer);
System.IO.StreamWriter mSW = new System.IO.StreamWriter(mServer);
string mResult = null;
StringBuilder mSB = new StringBuilder();
string mClientName = String.Format("{0} {1}", mServer.GetHashCode(), mServer.GetImpersonationUserName());
while (true)
{
mResult = mSR.ReadLine();
if (mResult == null || mResult == "bye")
{
break;
}
else
{
mSB.AppendLine(String.Format("{0} : {1}", mClientName, mResult));
mSW.Write("Reply:" + mResult);
System.Diagnostics.Debug.WriteLine(mResult);
}
}
mPipeServer.Disconnect();//服务器断开,很重要!
mPipeServer.BeginWaitForConnection(aa, mPipeServer);//再次等待连接,更重要!!
};
mPipeServer.BeginWaitForConnection(aa, mPipeServer);
});
}