CTcpClient类的源文件

CTcpClient类的源文件

 

转载:

http://blog.chiwudaili.com/detail.aspx?id=6b46e08d4c482f304e976a1081e40352

 

public class CTcpClient

{

private Socket ClientSocket { get; set; }

public CTcpClient()

{

ClientSocket = null;

}

public CTcpClient(Socket socket)

{

ClientSocket = socket;

}

public bool Start(int port = 8080, string ip = "127.0.0.1", int timeoutInSec = 10)

{

try

{

IPAddress ipA = IPAddress.Parse(ip);

ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

ClientSocket.SendTimeout = timeoutInSec * 1000;

ClientSocket.ReceiveTimeout = timeoutInSec * 1000;

ClientSocket.Connect(new IPEndPoint(ipA, port));

}

catch (Exception)

{

return false;

}

 

return true;

}

public int Receive(byte[] buffer, int offset, int size)

{

SocketError socketError = SocketError.Success;

 

int rel = ClientSocket.Receive(buffer, offset, size, SocketFlags.None, out socketError);

if (socketError == SocketError.Success)

{

return rel; 

}

return -1;

}

public int Send(byte[] buffer, int offset, int size)

{

SocketError socketError = SocketError.Success;

int rel = ClientSocket.Send(buffer, offset, size, SocketFlags.None, out socketError);

if (socketError == SocketError.Success)

{

return rel;

}

return -1;

}

public void Close()

{

if (ClientSocket!=null)

{

try

{

ClientSocket.Disconnect(false);

}

catch (Exception e)

{

}

try

{

ClientSocket.Dispose();

}

catch (Exception e)

{

}

try

{

ClientSocket.Close();

}

catch (Exception e)

{

}

ClientSocket = null;

}

}

}

posted @ 2018-12-02 15:16  cwdl  阅读(426)  评论(0编辑  收藏  举报