110,533
社区成员
发帖
与我相关
我的任务
分享
public class MyClass
{
private TcpClient tcpClient; // tcp客户端
private IPEndPoint remoteEndPoint; // 保存服务器IP与端口
private object sync = new objecct(); // 线程锁
public MyClass(string ip,int port)
{
tcpClient = new TcpClient(ip,port);
remoteEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);;
}
// 关闭,释放客户端。
public void Close()
{
if (tcpClient != null)
{
tcpClient.GetStream().Close();
if (tcpClient.Client != null)
{
tcpClient.Client.Close();
tcpClient.Client = null;
}
tcpClient.Close();
tcpClient = null;
}
}
// 重新连接服务器
private void Reconnect()
{
Close();
tcpClient = new TcpClient(remoteEndPoint.Address.ToString(), remoteEndPoint.Port);
}
// 读服务器
public byte[] Read(byte[] reg)
{
byte[] buffer=new byte[8192];
lock(sync)
{
Reconnect();
tcpClient.GetStream().Write(reg....
do
{
tcpClient.GetStream().Read(buffer...
}
while (tcpClient.GetStream().DataAvailable);
Close();
}
return buffer;
}
// 写服务器
public void Write(byte[] data)
{
lock(sync)
{
Reconnect();
tcpClient.GetStream().Write(data....
Close();
}
}
}