这是服务端的代码:
IPAddress ipAd = IPAddress.Parse("127.0.0.1");
TcpListener myList = new TcpListener(ipAd, 8001);
myList.Start();
Console.WriteLine("start the service at port 8001.......");
Console.WriteLine("local node:" + myList.LocalEndpoint);
Console.WriteLine("wait for connection.......");
Socket s = myList.AcceptSocket();
Console.WriteLine("connection from" + s.RemoteEndPoint);
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("have accpeted");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("the string was recieved by server."));
Console.WriteLine("\n");
s.Close();
myList.Stop();
里面的这几句:byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("have accpeted");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}
不是很明白;还有这是客户端的代码:
try
{
TcpClient tcpclnt = new TcpClient();
Console.WriteLine("connect.....");
tcpclnt.Connect("127.0.0.1", 8001);
Console.WriteLine("have connected");
Console.WriteLine("enter a string");
string str = Console.ReadLine();
Stream stm = tcpclnt.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(str);
Console.WriteLine("transfering....");
stm.Write(ba, 0, ba.Length);
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
tcpclnt.Close();
}
catch (Exception e)
{
Console.WriteLine("error" + e.StackTrace);
}
里面的:
byte[] ba = asen.GetBytes(str);
Console.WriteLine("transfering....");
stm.Write(ba, 0, ba.Length);
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
这几句也不是很明白
IPAddress ipAd = IPAddress.Parse("127.0.0.1");
TcpListener myList = new TcpListener(ipAd, 8001);
myList.Start();
Console.WriteLine("start the service at port 8001.......");
Console.WriteLine("local node:" + myList.LocalEndpoint);
Console.WriteLine("wait for connection.......");
Socket s = myList.AcceptSocket();
Console.WriteLine("connection from" + s.RemoteEndPoint);
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("have accpeted");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("the string was recieved by server."));
Console.WriteLine("\n");
s.Close();
myList.Stop();
里面的这几句:byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("have accpeted");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}
不是很明白;还有这是客户端的代码:
try
{
TcpClient tcpclnt = new TcpClient();
Console.WriteLine("connect.....");
tcpclnt.Connect("127.0.0.1", 8001);
Console.WriteLine("have connected");
Console.WriteLine("enter a string");
string str = Console.ReadLine();
Stream stm = tcpclnt.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(str);
Console.WriteLine("transfering....");
stm.Write(ba, 0, ba.Length);
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
tcpclnt.Close();
}
catch (Exception e)
{
Console.WriteLine("error" + e.StackTrace);
}
里面的:
byte[] ba = asen.GetBytes(str);
Console.WriteLine("transfering....");
stm.Write(ba, 0, ba.Length);
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));
}
这几句也不是很明白
int k = s.Receive(b);//把接受到的字节数据存到b中
Console.WriteLine("have accpeted");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));//循环在控制台,输出b中接收到的数据。先转成char再输出。
}
Console.WriteLine("transfering....");
stm.Write(ba, 0, ba.Length);//把ba中的数据写入stm
byte[] bb = new byte[100];
int k = stm.Read(bb, 0, 100);//从0开始,在stm读100个byte到bb中。
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(bb[i]));//输出bb的数据
}