使用C#实现服务端与客户端的简陋聊天
服务端代码:
using System;
using System.Net.Sockets;
using System.Net;
using System.IO;//服务器程序
namespace CSharpStudy_09_21
{class Program{static void Main(string[] args){int port = 8865;TcpClient tcpClient;//创建tcp对象IPAddress[] serverIp = Dns.GetHostAddresses("127.0.0.1");//定义IP地址,GetHostAddresses返回的是一个数组IPAddress LocalAddress = serverIp[0];Console.WriteLine("服务端::LocalAddress是" + LocalAddress);TcpListener tcpListener = new TcpListener(LocalAddress, port);tcpListener.Start();//开始监听消息Console.WriteLine("服务端::服务器已经启动,等待客户端发送消息");while (true){try{tcpClient = tcpListener.AcceptTcpClient();//为Tcp连接对象赋值,每接收一个客户端则生成一个TcpClientNetworkStream networkStream = tcpClient.GetStream();//获取网络数据流BinaryReader reader = new BinaryReader(networkStream);//定义流数据并读取对象BinaryWriter writer = new BinaryWriter(networkStream);//定义流数据并写入对象while (true){try{Console.WriteLine("正在等待接受客户端消息ing.....");String strReader = reader.ReadString();//接受消息Console.WriteLine("客户端"+strReader);Console.WriteLine("请输入你要发送的内容");String MyWords = "服务端::" + Console.ReadLine();//输入内容writer.Write(MyWords);//向对方发送消息}catch{break;}}}catch{}}}}
}
服务端代码:
using System;
using System.Net.Sockets;
using System.Net;
using System.IO;namespace CsharpStudy_09_21_Client
{class Program{static void Main(string[] args){TcpClient tcpClient= new TcpClient();//创建TCP连接对象,分配主机IP地址和端口号tcpClient.Connect("127.0.0.1", 8865);//连接服务器,服务器地址,端口号if (tcpClient != null){Console.WriteLine("客户端::成功连接服务器");NetworkStream networkStream = tcpClient.GetStream();//获取数据流BinaryReader reader = new BinaryReader(networkStream);//定义流数据读取对象BinaryWriter writer = new BinaryWriter(networkStream);//定义流数据写入对象String LocalIP = "127.0.0.1";//存储本机的IP地址,默认为IPAddress[] iPAddresses = Dns.GetHostAddresses(Dns.GetHostName());//获取所有的IP地址foreach (IPAddress ip in iPAddresses) {if (!ip.IsIPv6SiteLocal) {//如果不是IPV6地址Console.WriteLine("客户端::这里不是IPV6地址,这个地址是" + ip.ToString());LocalIP = ip.ToString();}while (true){Console.WriteLine("消息已经接受,请回复");String MyWords = "客户端::" + Console.ReadLine();//输入内容writer.Write(MyWords);//向对方发送消息try{Console.WriteLine("等待对方消息中ing....");String strReader = reader.ReadString();//接受服务器发送来的消息if (strReader != null){Console.WriteLine(strReader);}else {Console.WriteLine("对方暂时无消息");}}catch {break;}}}Console.WriteLine("服务器连接失败");}}}
}