代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
namespace WindowsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int port = Convert.ToInt32(portm.Text);
string host = ipAddress.Text;
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
c.Connect(ipe);
byte[] obuf = strToToHexByte("00 00 00 00 00 06 01 03 00 00 00 0A");
c.Send(obuf, obuf.Length, 0);
byte[] recvBytes = new byte[256];
c.Receive(recvBytes, recvBytes.Length, 0);
recent.Text = byteToHexStr(recvBytes);
c.Close();
}
catch (ArgumentNullException ex)
{
recent.Text = ex.ToString();
}
catch (SocketException ex)
{
recent.Text = ex.ToString();
}
}
//16进制转换
public static string byteToHexStr(byte[] bytes)
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
returnStr += bytes[i].ToString("X2") + " ";
}
}
return returnStr;
}
//字符串转byte
private static byte[] strToToHexByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}
private void timer1_Tick(object sender, EventArgs e)
{
button1_Click(sender,e);
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void button3_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
namespace WindowsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int port = Convert.ToInt32(portm.Text);
string host = ipAddress.Text;
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
c.Connect(ipe);
byte[] obuf = strToToHexByte("00 00 00 00 00 06 01 03 00 00 00 0A");
c.Send(obuf, obuf.Length, 0);
byte[] recvBytes = new byte[256];
c.Receive(recvBytes, recvBytes.Length, 0);
recent.Text = byteToHexStr(recvBytes);
c.Close();
}
catch (ArgumentNullException ex)
{
recent.Text = ex.ToString();
}
catch (SocketException ex)
{
recent.Text = ex.ToString();
}
}
//16进制转换
public static string byteToHexStr(byte[] bytes)
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
returnStr += bytes[i].ToString("X2") + " ";
}
}
return returnStr;
}
//字符串转byte
private static byte[] strToToHexByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}
private void timer1_Tick(object sender, EventArgs e)
{
button1_Click(sender,e);
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void button3_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
}
}