阅读量:0
目录
前言
为最终的界面化,增删改成做铺垫
一、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);//创建IP listener = 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:创建,传输文字部分由于时间太晚,明天学习并更新