byte[] myReadBuffer = new byte[1024];
private void ReceiveMessage()
{
try
{
tcpClient = new System.Net.Sockets.TcpClient("192.168.1.3", 8888);//创建TcpClient对象实例
}
catch (Exception le)
{
}
netStream = tcpClient.GetStream();//得到网络流
if (netStream.CanWrite)
{
byte[] myWriteBuffer = Encoding.ASCII.GetBytes("Are you receiving this message?");
netStream.BeginWrite(myWriteBuffer, 0, myWriteBuffer.Length,
new AsyncCallback(myWriteCallBack),
netStream);
allDone.WaitOne();
}
else
{
Console.WriteLine("Sorry. You cannot write to this NetworkStream.");
}
if (netStream.CanRead)
{
netStream.BeginRead(myReadBuffer, 0, myReadBuffer.Length,myReadCallBack,netStream);
allDone.WaitOne();
}
else
{
Console.WriteLine("Sorry. You cannot read from this NetworkStream.");
}
}
public void myWriteCallBack(IAsyncResult ar)
{
NetworkStream myNetworkStream = (NetworkStream)ar.AsyncState;
myNetworkStream.EndWrite(ar);
allDone.Set();
}
public void myReadCallBack(IAsyncResult ar)
{
StringBuilder myCompleteMessage = new StringBuilder();
NetworkStream myNetworkStream = (NetworkStream)ar.AsyncState;
int numberOfBytesRead;
numberOfBytesRead = myNetworkStream.EndRead(ar);
string str = Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead);
myCompleteMessage.AppendFormat("{0}", str);
// message received may be larger than buffer size so loop through until you have it all.
while (myNetworkStream.DataAvailable)
{
myNetworkStream.BeginRead(myReadBuffer, 0, myReadBuffer.Length,new AsyncCallback(myReadCallBack), myNetworkStream);
//
}
// Print out the received message to the console.
TextBox2.Text = myCompleteMessage.ToString();
allDone.Set();
}