当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/173184.html

相关文章:

  • 生成式模型和判别式模型区别
  • 【kafka实战】03 SpringBoot使用kafka生产者和消费者示例
  • Only file and data URLs are supported by the default ESM loader
  • LeetCode01
  • 计算机网络高频面试题集锦
  • Linux启动过程详解 Xmind导图笔记
  • Qt5开发及实例V2.0-第十七章-Qt版MyWord字处理软件
  • 机器视觉工程师们,常回家看看
  • 网络隔离下实现的文件传输,现有的方式真的安全吗?
  • [医学图像知识]CT图和PET图的成像表现形式
  • 聊聊wireshark的进阶使用功能 | 京东云技术团队
  • 小米手机安装面具教程(Xiaomi手机获取root权限)
  • DSU ON TREE
  • Java“对象”
  • vuepress+gitee免费搭建个人在线博客(无保留版)
  • Android 12.0 系统限制上网系列之iptables用IOemNetd实现app上网白名单的功能实现
  • Idea和DataGrip自定义常用代码模板,熟练使用快捷模板可促进开发效率
  • Vue.js :实现嵌套对话框的查看按钮
  • 9.2.4 【MySQL】段的结构
  • 怎么快速提取图片中的文字信息?怎么使用OCR图片文字提取一键提取文字
  • Selenium隐藏浏览器特征
  • Linux下的buff/cache
  • 3.wifi开发,网络编程
  • Android框架mqtt库无法兼容高版本android13的问题
  • 一招解除csdn复制限制
  • 安全基础 --- nodejs沙箱逃逸
  • Redis集群架构搭建——主从、哨兵、集群
  • 39 | selenium基础架构,UI测试架构
  • 2023研究生数学建模E题保姆级思路 出血性脑卒中临床智能诊疗
  • 画电路板通用知识