using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace connor_zwcadm.util { class SocketUtil { public static string SendRequest(string function, string param = "") { if (string.IsNullOrEmpty(function)) { return null; } SocketClient client = new SocketClient(9192); string inputInfo = function+ ":" + param; return client.StartClient(inputInfo); } public class SocketClient { private string _ip = string.Empty; private int _port = 0; private Socket _socket = null; private byte[] buffer = new byte[1024 * 1024 * 2]; public SocketClient(string ip, int port) { this._ip = ip; this._port = port; } public SocketClient(int port) { this._ip = "127.0.0.1"; this._port = port; } public string StartClient(string inputInfo) { string resp = null; try { _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress address = IPAddress.Parse(_ip); IPEndPoint endPoint = new IPEndPoint(address, _port); _socket.Connect(endPoint); _socket.Send(Encoding.UTF8.GetBytes(inputInfo)); KUtil.Log("向服务发送的消息 [{0}]", inputInfo); _socket.Shutdown(SocketShutdown.Send); int length = _socket.Receive(buffer); resp = Encoding.UTF8.GetString(buffer, 0, length); KUtil.Log("接收服务器消息 [{0}]", resp); } catch (Exception ex) { KUtil.LogErr(ex); } finally { try { _socket.Shutdown(SocketShutdown.Both); } catch (Exception) { } try { _socket.Close(); } catch (Exception) { } } return resp; } } } }