初始化上传
This commit is contained in:
66
常用工具集/Utility/Network/SocketHelper.cs
Normal file
66
常用工具集/Utility/Network/SocketHelper.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace 常用工具集.Utility.Network
|
||||
{
|
||||
public class SocketHelper
|
||||
{
|
||||
|
||||
//1.声明关于事件的委托;
|
||||
public delegate void MessageEventHandler(object sender, byte[] bytesList);
|
||||
//2.声明事件;
|
||||
public event MessageEventHandler MessageHandler;
|
||||
|
||||
private TimeOutSocket socket;
|
||||
private string ipAddress;
|
||||
private int port;
|
||||
|
||||
public SocketHelper(string ipAddress, int port)
|
||||
{
|
||||
this.ipAddress = ipAddress;
|
||||
this.port = port;
|
||||
socket = new TimeOutSocket(ipAddress, port, 1000);
|
||||
}
|
||||
public SocketHelper()
|
||||
{
|
||||
}
|
||||
|
||||
public void SendAsyn(string ipAddress, int port, byte[] bytes)
|
||||
{
|
||||
new Thread(() =>
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
byte[] retBytes = new byte[1024];
|
||||
TimeOutSocket socket = new TimeOutSocket(ipAddress, port, 1000);
|
||||
TcpClient client = socket.Connect();
|
||||
client.SendTimeout = 1000;
|
||||
client.ReceiveTimeout = 1000;
|
||||
NetworkStream ns = client.GetStream();
|
||||
ns.Write(bytes, 0, bytes.Length);
|
||||
Thread.Sleep(250);
|
||||
int length = ns.Read(retBytes, 0, retBytes.Length);
|
||||
ns.Close();
|
||||
client.Close();
|
||||
byte[] newRetBytes = new byte[length];
|
||||
for (int i = 0; i < length; i++)
|
||||
newRetBytes[i] = retBytes[i];
|
||||
MessageHandler?.Invoke(this, newRetBytes);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
byte[] retBytes = new byte[1];
|
||||
retBytes[0] = 0x00;
|
||||
MessageHandler?.Invoke(this, retBytes);
|
||||
}
|
||||
}).Start();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user