1.Socket服务端与客户端通话 1服务端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace tSocket { class Program { byte[] bytes = new byte[1024];
一开始,选用Vector<E>来存放连接.由于这个容器不是并发安全的,于是,每个方法都加一个synchronized来保持并发时的同步操作,并发效率很差,果断放弃.空余时间研究了下多线程的并发知识,决定用并发安全的阻塞队列(LinkedBlockingQueue<E>),这个容器可以自动维护容量的大小,就免去了再起一个线程去维护线程池的大小.为了保证每个连接是可用的,为线程池启动了一个守护线程去定时发送心跳. 程序如下,欢迎高手们指点缺陷: public class SocketC