博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket编程
阅读量:6644 次
发布时间:2019-06-25

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

1、网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
2、客户端代码
1  //建立连接 客户端 2                 Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 3 //这里的值我写在全局了,FM_JTApiUrl是IP,FM_JTDKH是端口号 4                 clientSocket.Connect(Global.FM_JTApiUrl, Convert.ToInt32(Global.FM_JTDKH)); 5                 //转json  doorinfo是需要往端口发送的信息 6                 string sendStr = JsonConvert.SerializeObject(doorinfo); 7                 byte[] sendBytes = Encoding.ASCII.GetBytes(sendStr); 8 //这里是往端口发数据              9                 clientSocket.Send(sendBytes);10 //返回的信息 12288为接收的信息大小,可自行改动11                 string recStr = "";12                 byte[] recBytes = new byte[12288];13                 int bytes = clientSocket.Receive(recBytes, recBytes.Length, 0);14                 recStr += Encoding.ASCII.GetString(recBytes, 0, bytes);
View Code

3、服务端代码

1 //配置IP及端口 同上 2             IPAddress ip = IPAddress.Parse(Global.FM_ApiUrl); 3             IPEndPoint ipe = new IPEndPoint(ip, Convert.ToInt32(Global.FM_DKH)); 4  5             Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 6                 sSocket.Bind(ipe); 7                 //监听端口 8                 sSocket.Listen(0); 9                 //建立连接10                 Socket serverSocket = sSocket.Accept();11 12                 string recStr = "";13                 byte[] recByte = new byte[12288];14                 int bytes = serverSocket.Receive(recByte, recByte.Length, 0);15                 recStr += Encoding.Default.GetString(recByte, 0, bytes);
View Code

注:发送或接收的时候最好写个日志,以方便以后查询bug

转载于:https://www.cnblogs.com/MycnBlogs7854/p/10470330.html

你可能感兴趣的文章
JMeter学习笔记01-安装环境
查看>>
php二次开发以及垃圾回收机制
查看>>
转载《Data Guard Broker基础》
查看>>
Redhat openstack6.0的安装
查看>>
交换机套装书获京东网双重重磅推荐
查看>>
演示:设置密码长度限制、密码加强
查看>>
Hadoop系列之三:函数式编程语言和MapReduce
查看>>
模版(Template)在框架API设计之妙用
查看>>
IP数据包经由路由转发的时候,源ip和目的IP是否改变
查看>>
Open-E DSS V7 应用系列之七 卷组和卷的管理
查看>>
Installing Oracle Database 18c Using RPM Packages
查看>>
AD恢复(3)使用AD回收站
查看>>
C++static成员函数和static成员的学习
查看>>
openvswitch在rhel61+kvm环境中的使用
查看>>
***S 2012 参数化报表 -- 利用拼接字符串来取代查询参数
查看>>
大容量导入和导出数据 -- 介绍
查看>>
用幻灯片做完整的“一站到底”抢答器
查看>>
创新创新再创新(3)
查看>>
一个简单的mysql服务检测启动脚本
查看>>
linux 下搭建BugFree
查看>>