一个网站要怎么做的吗,用php做的网站软件,有哪些可以做问卷的网站,wordpress 登录后页面空白页**硬件支持型号 点击 查看 硬件支持 详情**
DTU701 产品详情
DTU702 产品详情
DTU801 产品详情
DTU802 产品详情
DTU902 产品详情
G5501 产品详情
ARM dotnet 编程
dotNet使用TCP#xff0c;可以使用Socket和TcpClient 、TcpListener类 2种#xff0c;对于高级用户可以使用Socket和TcpClient 、TcpListener类 2种对于高级用户建议使用Socket类可以获得更大控制和性能。TcpClient 和 TcpListener 内部都依赖于 Socket 类。
这里使用TcpClient 和 TcpListener编写一个客户端和服务端程序客户端发送数据服务端接收并显示服务端发送数据每一个客户都接收到数据并显示: Socket编程可能会需要用到IPEndPoint、Dns、IPAddress等类再往上TCP相关有TcpListener、TcpClient、NetworkStream再往上就是大家熟悉的HttpClient等。
服务端代码如下
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace hwapp
{class Program{/// 创建 TcpListener/// TcpListener 类型用于监视 TCP 端口上的传入请求然后创建一个 Socket 或 TcpClient 来管理与客户端的连接。 static TcpListener tcpListener;static ListNetworkStream networkStreams new ListNetworkStream();static void Main(string[] args) {///开启监听tcpListener new TcpListener(IPAddress.Parse(127.0.0.1), 9999);///Start 方法可使用侦听而 Stop 方法禁用端口上的侦听。tcpListener.Start(10); // 最多 同时 接收10个用户连接Console.WriteLine(启动服务IP127.0.0.1 端口9999等待客户端连接);///开启一个线程循环等待客户端的连接Task.Run(() { Accept(); });
while(true){/// 使用 NetworkStream 将数据写入连接的客户端var msg Console.ReadLine();foreach (var item in networkStreams){item.Write(Encoding.UTF8.GetBytes(msg));}}}
static void Accept(){while (true){///【阻塞】等待客户端的连接/// AcceptTcpClientAsync 方法接受传入的连接请求并创建 TcpClient 来处理请求TcpClient tcpClient tcpListener.AcceptTcpClient();NetworkStream networkStream tcpClient.GetStream();Console.WriteLine(${tcpClient.Client.RemoteEndPoint}上线);networkStreams.Add(networkStream);///开启一个新的线程 等待新的消息Task.Run(() { Read(networkStream, tcpClient); });}}
/// summary/// 接收消息/// /summary/// param namenetworkStream/paramstatic void Read(NetworkStream networkStream, TcpClient tcpClient){while (true){try{byte[] buffer new byte[1024 * 1024];/// 【阻塞】等待接收新的消息var readLen networkStream.Read(buffer, 0, buffer.Length);if (readLen 0){Console.WriteLine(${tcpClient.Client.RemoteEndPoint}下线);networkStreams.Remove(networkStream);networkStream.Close();tcpClient.Close();return;}Console.WriteLine(tcpClient.Client.RemoteEndPoint : Encoding.UTF8.GetString(buffer, 0, readLen));}catch (Exception) { }}}}
}
客户端代码如下
namespace IOTtcpClient
{class Program{/// 创建客户端套接字static TcpClient tcpClient;static NetworkStream networkStream;static void Main(string[] args){Console.WriteLine(TCP tcp Client);
var ipEndPoint new IPEndPoint(IPAddress.Parse(127.0.0.1), 9999);
tcpClient new TcpClient();try{/// 连接到服务器tcpClient.Connect(ipEndPoint);Console.WriteLine(连接成功);/// 创建 NetworkStream 以发送和接收数据/// 需要使用 GetStream() 方法实例化 NetworkStream以便能够发送和接收数据networkStream tcpClient.GetStream();
//读取Task.Run(() { Read(); });
Console.WriteLine();while (true){Console.Write(-);var msg Console.ReadLine();/// 发送消息到服务端networkStream.Write(Encoding.UTF8.GetBytes(msg));}}catch (Exception) {Console.WriteLine(连接失败);}}
/// summary/// 接收数据/// /summarystatic void Read(){while (networkStream.CanRead){try{byte[] buffer new byte[1024 * 1024];///【阻塞】等待接收新的消息var readLen networkStream.Read(buffer, 0, buffer.Length);if (readLen 0) ///客户端断开连接{Console.WriteLine(强行断开连接);networkStream.Close();return;}Console.WriteLine(- Encoding.UTF8.GetString(buffer, 0, readLen));}catch (Exception) { }}}}
}
更多信息 请查看 dotNet基础知识.pdf DTU系列 说明 **硬件支持型号 点击 查看 硬件支持 详情**
DTU701 产品详情
DTU702 产品详情
DTU801 产品详情
DTU802 产品详情
DTU902 产品详情
G5501 产品详情
ARM dotnet 编程