博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#进行Socket 连接发送和接收数据
阅读量:6881 次
发布时间:2019-06-27

本文共 1834 字,大约阅读时间需要 6 分钟。

  hot3.png

/// ///  获取四位数的数字得到数据长度/// /// 
/// 
private int byte2Int(byte[] b){    return ((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16)            | ((b[2] & 0xff) << 8) | (b[3] & 0xff);}/// 
/// 把数据长度转换为二进制/// /// 
/// 
private byte[] int2Byte(int a){    byte[] b = new byte[4];    b[0] = (byte)(a >> 24);    b[1] = (byte)(a >> 16);    b[2] = (byte)(a >> 8);    b[3] = (byte)(a);    return b;}/// 
/// 读取Socket的数据/// /// 
/// 
/// 
private void readSocketData(String ip,int port,String requestData){    try    {        IPAddress ipAddress = IPAddress.Parse(ip);        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);        clientSocket.ReceiveTimeout = 5000;        clientSocket.SendTimeout = 5000;        clientSocket.Connect(new IPEndPoint(ipAddress, port));        Task
 readRes = Task.Factory.StartNew
(() =>        {            byte[] result = new byte[40960];            clientSocket.Receive(result);            int receiveLength = byte2Int(result);            String response = Encoding.UTF8.GetString(result, headLength, receiveLength);            return response;        });        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(requestData);        int length = byteArray.Length;        byte[] lenBytes = int2Byte(length);        byte[] newBytes = new byte[lenBytes.Length + length];        lenBytes.CopyTo(newBytes, 0);        byteArray.CopyTo(newBytes, lenBytes.Length);        clientSocket.Send(newBytes);        string resultStr = readRes.Result;        MessageBox.Show(resultStr, "Socket Result", MessageBoxButtons.OK, MessageBoxIcon.Error);    }    catch (Exception ex)    {        MessageBox.Show("Socket connect fail.\r\n" + ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);    }    finally    {        this.btn_submit.Enabled = true;    }}

转载于:https://my.oschina.net/Kxvz/blog/607840

你可能感兴趣的文章
《深入浅出统计学》笔记
查看>>
读书笔记:架构探险 从零开始写javaweb框架 第三章
查看>>
搭建Redis原生集群
查看>>
RxJava2.X 学习笔记 -- 创建操作符
查看>>
JavaEE 银联支付之网站支付-消费类交易
查看>>
教女朋友写方法 -- 就要学习 Go 语言
查看>>
java里的基本知识
查看>>
我理解的MVC
查看>>
CI第二篇 集成项目(SVN)workspace编译生成ipa到fir 蒲公英(jenkins)
查看>>
Stetho查看数据库(android 直接查看数据库)
查看>>
Ruby 2.7 — Enumerable#tally
查看>>
230. Kth Smallest Element in a BST
查看>>
学习:springMVC注解
查看>>
Netty序章之BIO NIO AIO演变
查看>>
centos7 配置 uwsgi 系统服务(systemd)
查看>>
RunC容器逃逸漏洞席卷业界,网易云如何做到实力修复?
查看>>
微服务应用新趋势:Service Mesh、AIOps和中台化
查看>>
后装业务管理平台项目总结
查看>>
FastJson几种常用场景
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>