public class AutoDocumentsPrintHelper
{
//负责监听端口
private Socket _sokListen;
//负责客户端和服务通信端口
private Socket _sokConnection;
//负责监听
private Thread _threadWatchPort;
public void StartListening()
{
try
{
var address = IPAddress.Parse("10.45.17.136"); //创建IP地址
var endpoint = new IPEndPoint(address, int.Parse("10001")); //创建IP节点(包含IP和端口)
_sokListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建监听套接字(寻址协议,流方式,TCP协议)
_sokListen.Bind(endpoint);
_sokListen.Listen(10); //参数:指能同时处理的连接数
_threadWatchPort = new Thread(WatchPort);
_threadWatchPort.Start();
}
catch (Exception ex)
{
}
}
private void WatchPort()
{
while (true)
{
try
{
_sokConnection = _sokListen.Accept(); // 负责和客户端Socket通信,未收到消息前会处于堵塞状态
string recStr = "";
var recByte = new byte[4096];
int bytes = _sokConnection.Receive(recByte, recByte.Length, 0);
recStr += Encoding.ASCII.GetString(recByte, 0, bytes);
string sendStr = "send to client";
byte[] sendByte = Encoding.ASCII.GetBytes(sendStr);
_sokConnection.Send(sendByte, sendByte.Length, 0);
}
catch (Exception ex)
{
break;
}
}
}
public void CloseSocket()
{
_sokListen.Close();
_sokConnection.Close();
_threadWatchPort.Abort();
}
{
//负责监听端口
private Socket _sokListen;
//负责客户端和服务通信端口
private Socket _sokConnection;
//负责监听
private Thread _threadWatchPort;
public void StartListening()
{
try
{
var address = IPAddress.Parse("10.45.17.136"); //创建IP地址
var endpoint = new IPEndPoint(address, int.Parse("10001")); //创建IP节点(包含IP和端口)
_sokListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建监听套接字(寻址协议,流方式,TCP协议)
_sokListen.Bind(endpoint);
_sokListen.Listen(10); //参数:指能同时处理的连接数
_threadWatchPort = new Thread(WatchPort);
_threadWatchPort.Start();
}
catch (Exception ex)
{
}
}
private void WatchPort()
{
while (true)
{
try
{
_sokConnection = _sokListen.Accept(); // 负责和客户端Socket通信,未收到消息前会处于堵塞状态
string recStr = "";
var recByte = new byte[4096];
int bytes = _sokConnection.Receive(recByte, recByte.Length, 0);
recStr += Encoding.ASCII.GetString(recByte, 0, bytes);
string sendStr = "send to client";
byte[] sendByte = Encoding.ASCII.GetBytes(sendStr);
_sokConnection.Send(sendByte, sendByte.Length, 0);
}
catch (Exception ex)
{
break;
}
}
}
public void CloseSocket()
{
_sokListen.Close();
_sokConnection.Close();
_threadWatchPort.Abort();
}