代码篇C#网络编程之tcp同步客户端
来源:互联网 发布:吉诺比利十大诡异数据 编辑:程序博客网 时间:2024/05/16 01:34
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Net;using System.Net.Sockets;using System.Threading;namespace _003_同步tcp客户端{ public partial class Form1 : Form { //---定义 private delegate void ShowReceiveMessageCallBack(string text); //---声明一个委托 private ShowReceiveMessageCallBack showReceiveMessageCallBack; //----操作进度条委托 private delegate void SetProgressBarValueCallBack(); //---- private SetProgressBarValueCallBack setProgressBarValueCallBack; private TcpClient myTcpclient; //--tcp 客户端 private NetworkStream networkstream; //---网络数据流 private Thread ReceiveMessageThread; //--接受消息线程 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //---初始化回调 showReceiveMessageCallBack = new ShowReceiveMessageCallBack(AddMessageToList); // ---初始化 setProgressBarValueCallBack = new SetProgressBarValueCallBack(SetProgreassBarValue); textbox_serverIP.Text = "127.0.0.1"; textbox_serverPort.Text = "5788"; textbox_sendMessage.Text = "blue, 你好"; } //---建立连接单击事件 private void btn_connect_Click(object sender, EventArgs e) { //--创建实例化IP终结点 //--传入的是服务器IP + 端口 IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(textbox_serverIP.Text), Convert.ToInt32(textbox_serverPort.Text)); //--实例化TCP客户端 myTcpclient = new TcpClient(); //--异常 处理 try { //--发起TCP连接 myTcpclient.Connect(ipEndPoint); //--获取网络数据流 networkstream = myTcpclient.GetStream(); //---实例化接收消息线程 ReceiveMessageThread = new Thread(ReceiveMessage); //--启动线程 ReceiveMessageThread.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } //--创建线程--等待服务器消息到来 private void ReceiveMessage() { while (true) { try { byte[] receiveData = new byte[1024]; ///---字节 networkstream.Read(receiveData, 0, receiveData.Length); //--转换为字符串格式--默认编码为ANSC|| string msg = Encoding.Default.GetString(receiveData); //---将消息放到消息列表中 listbox_receiveMessage.Invoke(showReceiveMessageCallBack, msg); //--设置进度条的值的回调函数 progressbar_progressBar.Invoke(setProgressBarValueCallBack); } catch(ThreadAbortException) { } catch (Exception ex) { MessageBox.Show(ex.Message); //--释放相关系统资源---释放TCP连接 if (null != networkstream) { networkstream.Dispose(); } break; } } } //---添加接受消息到列表的委托的方法 private void AddMessageToList(string text) { listbox_receiveMessage.Items.Add(text); } //--发送消息 private void btn_sendMessage_Click(object sender, EventArgs e) { byte[] sendData;// = new byte[1024]; sendData = Encoding.Default.GetBytes(textbox_sendMessage.Text); networkstream.Read(sendData, 0, sendData.Length); } //---断开连接单击事件 private void btn_disconnect_Click(object sender, EventArgs e) { //--销毁TCP客户端和网络数据流即可 myTcpclient.Close(); networkstream.Dispose(); //--终止线程的调用 ReceiveMessageThread.Abort(); } ///--设置进度条的委托的方法 private void SetProgreassBarValue() { if (progressbar_progressBar.Value < progressbar_progressBar.Maximum) { progressbar_progressBar.Value++; } else { progressbar_progressBar.Value = 0; } } }}
0 0
- 代码篇C#网络编程之tcp同步客户端
- 代码篇C#网络编程之tcp异步客户端
- C# 网络编程之Tcp实现客户端和服务器聊天
- C#网络编程之 TCP实现客户端和服务器聊天
- 网络编程之TCP客户端
- 网络编程之TCP异步群聊:客户端代码
- C# TCP同步客户端
- c#网络编程之TCP
- 网络编程之tcp服务器/客户端模型
- MFC Socket网络编程之TCP客户端
- 网络编程---TCP客户端
- C#网络编程系列文章(二)之Socket实现同步TCP服务器
- C#网络编程系列文章(四)之TcpListener实现同步TCP服务器
- C#网络编程之---TCP协议的同步通信(二)
- C#网络编程之---TCP协议的同步通信(二)
- C#网络编程系列文章(二)之Socket实现同步TCP服务器
- C#网络编程系列文章(四)之TcpListener实现同步TCP服务器
- C#网络编程之同步异步
- Ubuntu 14.04风扇不停转,风扇狂转 的解决办法,亲测有效。
- 原生js--客户端存储的种类
- 代码篇C#网络编程之回调
- LeetCode_pascals-triangle-ii
- 【开发环境】vs2008下实时语法分析的波浪线提示功能
- 代码篇C#网络编程之tcp同步客户端
- mac git
- 15级新同学风面会
- C++ map使用详解
- 代码篇C#网络编程之tcp异步客户端
- 《哈利波特》学院
- spring-aop源码解析:declare-parent
- 聊一聊Android的消息机制
- RMQ_st