C# 使用Socket对接

简介: C# 使用Socket对接
internal void PrintNew()
{
    //1.创建Socket对象
    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    IPAddress ip = IPAddress.Parse("xxx.xxx.x.xxx");
    //2.绑定IP和端口
    IPEndPoint endpoint = new IPEndPoint(ip, int.Parse("6000"));
    try
    {
        //这里客户端套接字连接到网络节点(服务端)用的方法是Connect 而不是Bind
        clientSocket.Connect(endpoint);
        //MessageBox.Show("ip连接成功...");
    }
    catch
    {
        MessageBox.Show("与系统连接失败,请检查计算机以及系统(新)!");
    }

    int[] selectRows = gridView1.GetSelectedRows();//获取当前列表行数 
    if (selectRows != null && selectRows.Length > 0)
    {
        StringBuilder builder = new StringBuilder();
        foreach (var row in selectRows)
        {
            if (this.gridView1.GetRowCellValue(row, "MachineNumber") != null)//机器代码
            {
                string Sampleno = "";
                string sampleno = this.gridView1.GetRowCellValue(row, "SampleNO").ToString();//蜡块号
                string[] samplenolist = sampleno.Split(',');
                for (int i = 0; i < samplenolist.Length; i++)
                {
                    if (i == 0)
                    {
                        Sampleno += samplenolist[i].ToString();
                    }
                    else
                    {
                        string[] samplenolistlist = samplenolist[i].ToString().Split('_');
                        for (int j = 0; j < samplenolistlist.Length; j++)
                        {
                            if (j == samplenolistlist.Length - 1)
                            {
                                Sampleno += "_" + samplenolistlist[j].ToString();
                            }
                        }
                    }
                }
                string rocheCode = this.gridView1.GetRowCellValue(row, "MachineNumber").ToString();//机器代码
                if (!string.IsNullOrEmpty(rocheCode))
                {
                    builder.Clear();
                    builder.Append(@"MSH|^~\&|PIS|Lab||BenchMark|");
                    builder.Append(DateTime.Now.ToString("yyyyMMddHHmmss"));
                    builder.Append("||OML^O21|");
                    builder.Append(DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString());
                    builder.Append("|P|2.4|");
                    builder.Append('\r');
                    builder.Append("ORC|NW|");
                    builder.Append(Sampleno);
                    builder.Append("|");
                    builder.Append('\r');
                    builder.Append("OBR|1|");
                    builder.Append(this.gridView1.GetRowCellValue(row, "CaseNO").ToString());
                    builder.Append("||");
                    builder.Append(rocheCode + "^" + this.gridView1.GetRowCellValue(row, "MarkerName").ToString());
                    builder.Append("^STAIN|||||||||||||||||||04926|||||");
                    builder.Append('\r');
                    byte[] sendMsg = Encoding.UTF8.GetBytes(builder.ToString());
                    byte[] bs = new byte[sendMsg.Length + 3];
                    bs[0] = 0x0b;
                    for (int i = 0; i < sendMsg.Length; i++)
                    {
                        bs[i + 1] = sendMsg[i];
                    }
                    bs[bs.Length - 2] = 0x1c;
                    bs[bs.Length - 1] = 0x0d;
                    clientSocket.Send(bs);
                    Thread.Sleep(100);
                }
            }
            else
            {
                MessageBox.Show("无机器码,请联系管理员!", "标签打印", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
    }
    else
    {
        MessageBox.Show("请选择您要打印记录!", "打印", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    }
    //oGetArgThread.Abort();
    clientSocket.Shutdown(SocketShutdown.Both);
    clientSocket.Close();
}
目录
相关文章
|
4天前
|
数据采集 安全 JavaScript
C#医院手术麻醉信息管理系统源码 对接院内HIS、LIS、PACS
手麻系统的功能涵盖了麻醉临床业务管理、麻醉运营业务管理以及手术进程管理等,实现了将多种麻醉病历文书与医院HIS系统的有效关联,让手术室人员、设备资源和信息资源高度共享;实现了手术安排、各种统计报表等科室管理和科研工作的需求,可借其收集临床数据、进行整合分析,为围术期临床信息、管理、科研提供整体解决方案;该系统的运行,为医护人员提供了流程化、信息化、自动化、智能化的临床业务综合管理。
35 5
|
4天前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
4天前
|
数据采集 存储 安全
C#手术麻醉系统源码 可对接HIS LIS PACS 医疗系统各类设备
术麻醉信息管理系统主要还是为了手术室开发提供全面帮助的系统,其主要是由监护设备数据采集子系统和麻醉临床系统两个子部分组成。包括从手术申请到手术分配,再到术前访视、术中记录及术后恢复的全过程中都可以得到全方位的保障。
20 4
C#手术麻醉系统源码 可对接HIS  LIS   PACS 医疗系统各类设备
|
4天前
|
JSON C# 图形学
【Unity 3D】利用C#、Unity和Socket实现简单的在线聊天室工具(附源码 简单易懂)
【Unity 3D】利用C#、Unity和Socket实现简单的在线聊天室工具(附源码 简单易懂)
55 0
|
4天前
|
网络协议 Unix Linux
【Unity 3D】C#中Socket及TCP三次握手与四次挥手详解(超详细 图文解释)
【Unity 3D】C#中Socket及TCP三次握手与四次挥手详解(超详细 图文解释)
61 0
|
7月前
|
定位技术 API C#
C# 高德地图WebApi对接示例
1、登录或注册高德地图开放平台然后申请应用key(需要认证个人或企业开发者) 高德开放平台 | 高德地图API (amap.com) 2、创建新应用,为新应用添加key,完成第一项后即可看到key管理 3、具体的开发文档、接口入参出参以及结果示例等详见高德地图开放平台官网 地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API (amap.com) 4、直接书写具体示例 开发语言:C# 开发工具:visual studio 2019 开发项目类型:控制台程序 //
77 1
C# 高德地图WebApi对接示例
|
8月前
|
网络协议 安全 API
C# Socket网络编程精华篇
C# Socket网络编程精华篇
|
API C#
C# 企业微信消息推送对接
C# 企业微信消息推送对接
768 0
C# 企业微信消息推送对接
|
存储 Web App开发 监控
C#Socket编程笔记,Socket 详解,入门简单
目录 一,网络基础 二,Socket 对象 三,Bind() 绑定与 Connect() 连接 四,Listen() 监听请求连接 和 Accept() 接收连接请求 五,Receive() 与 Send() 六,释放资源 七,IPAddress 和 IPEndPoint
482 0
C#Socket编程笔记,Socket 详解,入门简单
|
程序员 数据库连接
C#socket通讯两个最经典错误解决方案
1、经典错误之 无法访问已释放的对象。 对象名:“System.Net.Sockets.Socket” (1)、问题现场 (2)、问题叙述 程序中的某个地方调用到了socket.
1332 0