台州海关TD3600上线版本
This commit is contained in:
101
JJMediSys/cs/SocketClient.cs
Normal file
101
JJMediSys/cs/SocketClient.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JJMediSys
|
||||
{
|
||||
public class SocketClient
|
||||
{
|
||||
private Socket _clientSocket;
|
||||
private IPEndPoint _serverEndPoint;
|
||||
public bool Status = false;
|
||||
|
||||
public SocketClient(string serverIp, int serverPort)
|
||||
{
|
||||
_serverEndPoint = new IPEndPoint(IPAddress.Parse(serverIp), serverPort);
|
||||
}
|
||||
|
||||
public bool Connect()
|
||||
{
|
||||
_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
try
|
||||
{
|
||||
_clientSocket.Connect(_serverEndPoint);
|
||||
Status = true;
|
||||
SystemSet.logger.Info("Connected to server");
|
||||
return Status;
|
||||
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
Status = false;
|
||||
SystemSet.logger.Info($"Connection failed: {ex.Message}");
|
||||
return Status;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public bool SendData(string data)
|
||||
{
|
||||
if (_clientSocket == null || !_clientSocket.Connected)
|
||||
{
|
||||
SystemSet.logger.Info("Not connected to server");
|
||||
Status = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
||||
try
|
||||
{
|
||||
_clientSocket.Send(buffer);
|
||||
SystemSet.logger.Info($"Sent data: {data}");
|
||||
return true;
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
SystemSet.logger.Info($"Send failed: {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public string ReceiveData()
|
||||
{
|
||||
if (_clientSocket == null || !_clientSocket.Connected)
|
||||
{
|
||||
SystemSet.logger.Info("Not connected to server");
|
||||
Status = false;
|
||||
return null;
|
||||
}
|
||||
|
||||
byte[] buffer = new byte[1024];
|
||||
try
|
||||
{
|
||||
int bytesReceived = _clientSocket.Receive(buffer);
|
||||
string receivedData = Encoding.UTF8.GetString(buffer, 0, bytesReceived);
|
||||
SystemSet.logger.Info($"Received data: {receivedData}");
|
||||
return receivedData;
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
SystemSet.logger.Info($"Receive failed: {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
if (_clientSocket != null)
|
||||
{
|
||||
_clientSocket.Shutdown(SocketShutdown.Both);
|
||||
_clientSocket.Close();
|
||||
_clientSocket = null;
|
||||
SystemSet.logger.Info("Disconnected from server");
|
||||
Status = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user