欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 记录|Stock编程

记录|Stock编程

2024/10/24 13:30:57 来源:https://blog.csdn.net/qq_41714549/article/details/140748789  浏览:    关键词:记录|Stock编程

目录

  • 前言
  • 一、Stock编程?
  • 二、聊天工具开发
    • 1. 目的
    • 2. 服务器端开启对端口的监听
    • 3. VS创建服务器端Service
      • Step1. 创建
      • Step2. Listener对象监听事件
      • Step1~2效果展示
    • 4. 创建客户端,与服务器端链接
    • 5. VS创建客户端Client
      • Step1. 创建
      • Step2. Client对象
      • Step1~2的效果展示
        • 链接成功效果:
        • 链接失败效果:
      • 额外补充
    • 6. 传输文字【待更新。。。
  • 更新时间


前言

参考视频:
C#之Socket编程 | 简单聊天工具 | 全集完

为最终的界面化,增删改成做铺垫


一、Stock编程?

  • 通过编写程序实现电脑间的通讯。【例如,用TCP/UDP等协议进行通讯】

二、聊天工具开发

1. 目的

期望:实现两台电脑之间的即时聊天。
具体:一台电脑的客户端做为服务器端,另一台电脑做为客户端。
服务器端开启端口,监听其他电脑对这个端口的请求。一旦发现有电脑接入,就建立连接。

2. 服务器端开启对端口的监听

  • 创建一个服务器端的程序,程序开启端口,然后监听
  • 创建一个名为:TalkService的命令行程序
  • 在Main方法里,创建一个IPAddress,然后开启一个TcpListener监听,执行Start()方法进行监听。

3. VS创建服务器端Service

Step1. 创建

  • 创建C#窗口文件,命名为:Service
  • 布置Form1的前端界面【如下图示:】、
    在这里插入图片描述

Step2. Listener对象监听事件

  • 功能:点击“启动”按钮,触发点击事件。点击事件中触发监听事件。并将监听到的信息返回到信息界面中。
  • txtBoxPort:端口输入框
  • txtBoxIP:IP地址输入框
  • txtBoxInof:信息界面
  • 下面是具体的代码:
        TcpListener listener;IPAddress ip;private void btnStart_Click(object sender, EventArgs e){ip = IPAddress.Parse(txtBoxIP.Text);//创建IPlistener = new TcpListener(ip, Convert.ToInt32(txtBoxPort.Text));//创建TCP监听对象listener.Start();//开始监听txtBoxInfo.Text = "服务器启动"+DateTime.Now.ToShortDateString()+"\r\n"+txtBoxInfo.Text; ;}

Step1~2效果展示

在这里插入图片描述


4. 创建客户端,与服务器端链接

  • 创建一个Client的命令行项目
  • 创建一个TcpClient的TCP客户端
  • 去链接Connect(“192.168.20.30”, 9500)
  • 链接成功,就可以读取服务器的信息
  • tcpClient.Client.LoaclEndPoint
  • tcpClient.Client.RemoteEndPoint

5. VS创建客户端Client

Step1. 创建

  • 创建新的C#窗口应用,命名为:Client
  • 页面布局和Service先弄成一样,主要看“链接”按钮的触发事件
    在这里插入图片描述

Step2. Client对象

  • 实例化Client对象,启用Connect对服务器端进行链接
  • 链接的逻辑是:服务器端的监听和客户端的请求链接的IP地址和端口号要一致。
       TcpClient tcpClient;private void btnConnect_Click(object sender, EventArgs e){tcpClient = new TcpClient();//实例化客户端对象try{tcpClient.Connect(txtBoxIP.Text, Convert.ToInt32(txtBoxPort.Text));//客户端和服务器端建立链接txtBoxInfo.Text = "链接成功-" + DateTime.Now.ToShortDateString() + "\r\n" + txtBoxInfo.Text;}catch (Exception ex){MessageBox.Show($"链接失败,{ex.Message}");}}

Step1~2的效果展示

  • 注意:要先启动Service端,再去启动客户端Client
链接成功效果:

在这里插入图片描述

链接失败效果:
  • 如果Service没有启动,或者服务器端挂掉了,那么下面就会报错。
    在这里插入图片描述

额外补充

  Console.WriteLine("链接成功, 我方端口{ 0},服务器端口{ 1}", tcpClient.Client.LocalEndPoint, tcpClient.Client.RemoteEndPoint);

客户端会自动分配一个端口,和服务器端的9500端口进行匹配链接。
客户端的端口是不需要程序分配的,这是因为每次都可能不一样。
服务器端的9500端口是可以和多个客户端连接的。


6. 传输文字【待更新。。。


更新时间

  • 2024.07.28:创建,传输文字部分由于时间太晚,明天学习并更新

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com