// 服务器
public static void Server()
{
// 创建监听对象
TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 30005);
// 开始监听
tcpListener.Start();
try
{
// 开始等待链接
TcpClient tcpClient = tcpListener.AcceptTcpClient();
Console.WriteLine("有客户端" + tcpClient.Client.RemoteEndPoint + "加入聊天");
Console.WriteLine("链接成功");
// 4.获取数据流
NetworkStream stream = tcpClient.GetStream();
byte[] receiveData = new byte[1024];
while (true)
{
// 5.读取数据
int length = stream.Read(receiveData,0,receiveData.Length);
string msg = Encoding.UTF8.GetString(receiveData,0,length);
Console.WriteLine(tcpClient.Client.RemoteEndPoint + "说:" + msg);
// 6.服务器向客户端发送数据
byte[] senDatad = Encoding.UTF8.GetBytes("服务器收到数据了");
stream.Write(senDatad,0,senDatad.Length);
}
}
catch (Exception e)
{
Console.WriteLine(e);
// throw;
}
finally
{
tcpListener.Stop();
}
}
// 客户端
public static void Client()
{
// 1.创建客户端对象
TcpClient client = new TcpClient();
// 2.链接
client.Connect(IPAddress.Parse("127.0.0.1"), 30005);
try
{
// 3.获取数据流
NetworkStream stream = client.GetStream();
开启分线程 接收服务器的消息
Thread thread = new Thread(ClientReceiveThread);
thread.Start(stream);
while (true)
{
Console.WriteLine("链接成功 请说话:");
string input = Console.ReadLine();
if (input != string.Empty)
{
// 4.向服务器发送数据
byte[] sendData = Encoding.UTF8.GetBytes(input);
stream.Write(sendData,0,sendData.Length);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
// throw;
}
finally
{
client.Close();
}
}
// 分线程
public static void ClientReceiveThread(object obj)
{
NetworkStream stream = obj as NetworkStream;
try
{
while (true)
{
byte[] receiveData = new byte[1024];
// 5.读取数据
int length = stream.Read(receiveData, 0, receiveData.Length);
string msg = Encoding.UTF8.GetString(receiveData, 0, length);
Console.WriteLine(msg);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
// throw;
}
}
public static void Server()
{
// 创建监听对象
TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 30005);
// 开始监听
tcpListener.Start();
try
{
// 开始等待链接
TcpClient tcpClient = tcpListener.AcceptTcpClient();
Console.WriteLine("有客户端" + tcpClient.Client.RemoteEndPoint + "加入聊天");
Console.WriteLine("链接成功");
// 4.获取数据流
NetworkStream stream = tcpClient.GetStream();
byte[] receiveData = new byte[1024];
while (true)
{
// 5.读取数据
int length = stream.Read(receiveData,0,receiveData.Length);
string msg = Encoding.UTF8.GetString(receiveData,0,length);
Console.WriteLine(tcpClient.Client.RemoteEndPoint + "说:" + msg);
// 6.服务器向客户端发送数据
byte[] senDatad = Encoding.UTF8.GetBytes("服务器收到数据了");
stream.Write(senDatad,0,senDatad.Length);
}
}
catch (Exception e)
{
Console.WriteLine(e);
// throw;
}
finally
{
tcpListener.Stop();
}
}
// 客户端
public static void Client()
{
// 1.创建客户端对象
TcpClient client = new TcpClient();
// 2.链接
client.Connect(IPAddress.Parse("127.0.0.1"), 30005);
try
{
// 3.获取数据流
NetworkStream stream = client.GetStream();
开启分线程 接收服务器的消息
Thread thread = new Thread(ClientReceiveThread);
thread.Start(stream);
while (true)
{
Console.WriteLine("链接成功 请说话:");
string input = Console.ReadLine();
if (input != string.Empty)
{
// 4.向服务器发送数据
byte[] sendData = Encoding.UTF8.GetBytes(input);
stream.Write(sendData,0,sendData.Length);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
// throw;
}
finally
{
client.Close();
}
}
// 分线程
public static void ClientReceiveThread(object obj)
{
NetworkStream stream = obj as NetworkStream;
try
{
while (true)
{
byte[] receiveData = new byte[1024];
// 5.读取数据
int length = stream.Read(receiveData, 0, receiveData.Length);
string msg = Encoding.UTF8.GetString(receiveData, 0, length);
Console.WriteLine(msg);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
// throw;
}
}