Socket客户端常用方法,不积硅步无以至千里

news/2024/11/8 14:47:18/

1. 创建客户端Socket对象:Socket clientSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

2. 创建表示ip的字节数组:byte[] ip=new byte[]{服务端的ip}

3. 创建IPAddress对象:IPAddress iPAddress=new IPAddress(ip);

4. 创建IPEndPoint对象:IPEndPoint iPEndPoint=new IPEndPoint(iPAddress,服务端端口号);

5. 连接服务端: clientSocket.Connect(iPEndPoint);

6. 创建单独的线程,执行数据交互的方法:Thread thread=new Thread(数据交互的方法);

7. 运行线程:thread.Start();

8. 创建数据交互的方法:

         创建连接状态标志:bool connectFlag=true;

         开始数据收发循环:

                创建用来保存实际发送字节数的变量:int sendNum=-1;

                创建发送字节数组数据块:byte[] sendBuffer=new byte[]{待发送的数据};

                发送数据:sendNum=this.clientSocket.Send(sendBuffer);

                 创建用来保存实际接收字节数的变量:int receiveNum=-1;

                创建接收字节数组数据块:byte[] receiveBuffer=new byte[最多一次接收的字节数]

                接收数据:receiveNum=this.clientSocket.Receive(receiveBuffer)                

               判断读取到的字节数是否为0,如果为0,则对等连接已断开

               销毁引用:clientSocket.Dispose();

               连接标志置位false:connectFlag=false;

               退出循环:break;

9. *可以通过异常捕获,得到客户端的断线状态*


http://www.ppmy.cn/news/752917.html

相关文章

SqlServer骚操作,不积硅步无以至千里

1. 类型转换方法1:Convert(目标类型,待转换的字段,格式) 2. 类型转换方法2:Cast(待转换的字段 as 目标类型) 3. 日期增加:DateAdd(日期的年/月/日...,增加的数值,日期字段) 4. 日期减少:DateDiff(日期的年/月/日...,开始日期字段,结束日期字段) 5. 取出日期的年/月/日...:D…

ListBox美化重绘,不积硅步无以至千里

如果要对ListBox控件进行自定义绘制(美化),那么首先必须将ListBox的DrawMode属性设置为OwnerDrawVariable或OwnerDrawFixed。ListBox有个ItemHeight属性,在DrawMode设置为Normal时,这个属性是不可设置的,并…

C#操作Excel表格,不积硅步无以至千里

本文主要介绍一下c#来操作excel表格,主要介绍我使用的,我是使用第三方提供的函数库(NPOI)来进行excel的操作,而NPOI库函数在其官网下,我这里就不拿出来了。1:NPOI库函数NPOI库函数下载后&#x…

向控件拖放数据,不积硅步无以至千里

1. 设置待接收数据控件的AllowDrop属性为True 2. private void textBox1_DragEnter(object sender, DragEventArgs e) {//必须设置拖放效果e.Effect DragDropEffects.Copy; }private void textBox1_DragDrop(object sender, DragEventArgs e) {IDataObject dataObject e.Da…

Pickit 3D视觉定位抓取系统 -硅步机器人

Pickit 3D视觉定位抓取系统 产品特点 1. Pickit面向机器人程序开发者及系统集成商,使用者不需要视觉基础或额外培训即可简便操作。 2. 定位各种形体及尺寸工件 3. 适应各种颜色环境 4. 适应各种材料 (金属,塑料,木材…

ArrayList常用方法,不积硅步无以至千里

添加单个元素(可以是对象/基本类型/集合本身:arrayList.Add(元素) 添加集合中的每个元素(非集合本身):arrayList.AddRange(元素的集合) 指定位置插入元素:arrayList.Insert(索引,元素) 指定位置插入集合中的每个元素(非集合本身):arrayList.InsertRange(索引,元素的集合) 根…

Directory常用方法,不积硅步无以至千里

private void button1_Click(object sender, EventArgs e) {try{//创建主测试文件夹Directory.CreateDirectory(".\TestDirectory");//创建待剪切测试文件夹Directory.CreateDirectory(".\MoveDirectory");//将待剪切测试文件夹,剪切到主测试文件夹中Direc…

string常用方法,不积硅步无以至千里

1. 字符串至数值转换: 创建转换结果标志:bool successFlagfalse; 创建待转换字符串:string age27; 创建用来保存转换结果值的变量:int result-1; 转换:希望转换后得到的类型.TryParse(age,out result); 2. 字符串至字符数组转换: 创建待转换字符串:string info"abc123&qu…