使用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连接对象赋值,每接收一个客户端则生成一个TcpClient

                    NetworkStream 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("服务器连接失败");
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值