socket聊天室笔记

3-25和26 多线程与服务器------ -------------------------------- 1.委托复习 2.文件流复习  真正输出缓存数据到硬盘的是 Flush()方法.

3.多线程: 命名空间 System.Threading  多线程的目的:   1.让CPU主动执行不同的程序单元,这样就不至于被      某个程序的破坏性代码引起死机症状.   2.理想上能在"同时"做多个事情. 4.线程的Start()方法只是标记该线程可以运行了,具体的运行时间还是由CPU来决定

5.网络通信socket  IP与端口号: system.Net          套接字socket: system.Net.Sockets;

 IPAddress address=IPAddress.Parse(ip地址): 保存IP地址  IPEndPoint endPoint=new IPEndPoint(address,int.parsr(端口号)): 保存网络节点        (ip和port组成)  socket.Bind(endpoint);将套接字 绑定到对应的端口  socket.Listen(10); 为套接字 设置监听队列

 socket.Accept();  接受客户端发来的请求.----        SocketconnectionSocket=socket.Accept();  Accept() 方法会阻塞当前的线程,从来实现不断接收客户端请求.         若有连接过来 则返回一个负责与客户端通信的套接字

 connectionSocket.RemoteEndPoint 发送请求的客户端的IP与端口信息

        监听队列Listen():  同时能够处理的请求个数.           服务器的监听套接字的Listen(5)方法设置了监听队列长度为5,那么           当同时有6个客户端发送连接请求时,那么监听套接字就会拒绝一个,                        然后让剩下的5个存储在队列中,一个一个为他们闯将服务端的通信套                         接字那么当队列中有空的位置出现,恰好有新客户端连接请求发来时           那么久直接排入队列处理两个数组间的拷贝方法:   Buffer.BlockCopy(老数组,拷贝索引,新数组,复制索引,复制长度);

posted @ 2012-09-01 08:03  zxp19880910  阅读(127)  评论(0编辑  收藏  举报