Tag: tcp ip

如何将单独的int值转换为hex字节数组

我需要做一些(对我而言)int / hex / byte工作,我正在努力做到正确。 另一方面的tcp服务器期待Little Endian。 我需要发送一个由HEX值组成的字节数组。 需要发送6000作为: 0x70, 0x17 需要发送19作为: 0x13, 0x00, 0x00, 0x00 生成的字节数组应如下所示。 **FROM THE MANUFACTURER** Complete message should be: 0x70, 0x17, 0x13, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04 我可以通过使用: .ToString(“x4”)得到6000的hex值为1770我可以使用: .ToString(“x8”)将hex值19作为00000013 我有两个问题: 这(据我所知)是Big Endian。 切断字符串并手动重写以反转字符串,是否有一个.net例程可以为我做这个? 一旦我扭转了,我该怎么做 7017 在一个字节数组中: [0] = […]

如何在WCF和C#中实现传统TCP / IP服务?

我有一个传统的TCP / IP服务,它在套接字上侦听专有格式的消息。 当服务收到消息时,它会对其进行处理并回复一个类似格式的消息(经典请求/回复情况)。 我们无法更改调用旧服务的客户端,并且我们希望使用WCF和C#将旧服务替换为IIS中托管的新服务。 如何在WCF中实现此function? 甚至可以让WCF理解专有的消息格式吗? 如果不是那么WCF的替代品呢? 我在这里有灵活性,但必须使用C#和.NET。

如何发送文件多一次

有两个C#项目:一个项目用于客户端,另一个项目用于服务器。 第一步是运行服务器,然后选择目标文件夹,然后运行客户端项目,选择一些text.txt发送到服务器的目标文件夹。 只有客户端才能将文件发送到服务器 演示: 1.choosing file target 2.client sends +————+ | tar folder | <—————- text.txt +————+ 这工作正常,但我希望它每隔几分钟自动发送text.txt,所以我添加了while(true)循环和Thread.Sleep(10000)但是alaway给出了Exceptions。 我的意思是,它不会让我再发送一次。 在这里的客户端类我试图放一个while循环: public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e)//browse btn { string n; byte[] b1; TcpClient client; OpenFileDialog op; Stream s; StreamWriter sw; op = new OpenFileDialog(); if (op.ShowDialog() == DialogResult.OK) { string […]

c#中的TCPIP连接和另一个线程中的数据发送/接收

我的TCPIP连接表单程序有问题。 我有一个代码,我正在尝试从服务器发送和接收一些数据。 我的应用程序的主要问题是如何协调一些线程: myListenThread – 从服务器收听数据 myReadStreamThread – 从服务器读取数据 System.Threading.Thread – 主线程例如。 将数据写入服务器 captureThread – 做另一件事,比如从相机中捕捉图像 我的部分代码: private void buttonConnect_Click(object sender, EventArgs e) { try { Connect(); Connected = true; this.myListenThread = new Thread(new ThreadStart(Listen)); this.myListenThread.Start(); } catch { MessageBox.Show(“Invalid host! Try again.”); } } private void Listen() { this.myReadStreamThread = new Thread(new ThreadStart(ReadStream)); this.myReadStreamThread.Start(); […]

C#.Net中的TCP / IP客户端套接字程序使用IP地址和端口号

TCP / IP客户端套接字程序。 这里我的主要要求是客户端发送消息和服务器接收消息并存储在C#.Net的数据库表中,使用服务器IP地址和端口号。

如何正常重新连接到套接字

我有一个以下方法连接到程序启动时的终点 ChannelSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var remoteIpAddress = IPAddress.Parse(ChannelIp); ChannelEndPoint = new IPEndPoint(remoteIpAddress, ChannelPort); ChannelSocket.Connect(ChannelEndPoint); 我还有一个定时器,设置为每60秒触发一次调用CheckConnectivity ,它试图将任意字节数组发送到终点,以确保连接仍然存在,如果发送失败,它将尝试重新连接。 public bool CheckConnectivity(bool isReconnect) { if (ChannelSocket != null) { var blockingState = ChannelSocket.Blocking; try { var tmp = new byte[] { 0 }; ChannelSocket.Blocking = false; ChannelSocket.Send(tmp); } catch (SocketException e) { try { ReconnectChannel(); […]

如何从NetworkStream获取所有数据

我试图读取通过TCP/IP连接的机器缓冲区中存在的所有数据,但我不知道为什么我没有得到所有数据,一些数据正在错过。 这是我正在使用的代码.. using (NetworkStream stream = client.GetStream()) { byte[] data = new byte[1024]; int numBytesRead = stream.Read(data, 0, data.Length); if (numBytesRead > 0) { string str= Encoding.ASCII.GetString(data, 0, numBytesRead); } } 请告诉我我缺少什么来从机器获取所有数据。 提前致谢..