Socket监听并接收字符串
直接贴代码了。
/*监听器*/ class Listener { /*监听线程*/ private Thread listenerThread; /*监听者*/ private TcpListener listener = null; /*监听的ip地址*/ private IPAddress listenerIP = IPAddress.Parse("127.0.0.1"); /*监听的端口*/ private int listenerPort = 3000; /*设置set/get提供其他类访问接口*/ public Thread getListenerThread() { return this.listenerThread; } public void setListenerThread(Thread listenerThread) { this.listenerThread = listenerThread; } public TcpListener getListener() { return this.listener; } public void setListener(TcpListener listener) { this.listener = listener; } /*开始监听线程*/ public void StartListener() { listenerThread = new Thread(new ThreadStart(this.Listen)); listenerThread.Start(); } /*监听线程执行的程序*/ private void Listen() { listener = new TcpListener(listenerIP, listenerPort); listener.Start(); while (true) { String msg = ""; TcpClient tcpclient = listener.AcceptTcpClient(); NetworkStream ns = tcpclient.GetStream(); byte[] buffer = new byte[40]; try { ns.Read(buffer, 0, 40); msg = Encoding.GetEncoding("gb2312").GetString(buffer); } catch (Exception) { /*进行异常处理*/ } finally { ns.Close(); tcpclient.Close(); tcpclient = null; } /*对接收到的信息msg进行操作*/ } } }
如果是WinForm中要使用这个类,在窗体中添加FormClosing事件
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (this.listener != null) { if (this.listener.getEndListenerThread() != null) { if (this.listener.getListener() != null) { this.listener.getListener().Stop(); this.listener.setListener(null); } this.listener.getEndListenerThread().Abort(); } this.listener= null; } }
                    
                
                
            
        
浙公网安备 33010602011771号