知识大全 关于Socket编程项目的经验之谈
Posted 字节
篇首语:我们不会把常识僵化并使它变成信条。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于Socket编程项目的经验之谈相关的知识,希望对你有一定的参考价值。
关于Socket编程项目的经验之谈 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我们的项目是用DotNet实现Socket连接 用多线程处理多用户 我就谈一下在实现过程中遇到的问题 下面是我服务器的简化实现
private Socket clientSocket; public void Start() Thread thread=new Thread(new ThreadStart(MainService)); thread Start(); void MainService() listener=new TcpListener( ); listener Start(); while(true) Socket s= listener AcceptSocket();//帧听客户连接 clientSocket=s; Thread clientservice = new Thread(new ThreadStart(ClientService)); clientservice Start(); Thread Sleep( );// 等待传值给线程中的变量 防止多用户造成冲突 void ClientService() string mand; string receiveStr; string fileName fileSize; Socket sock=clientSocket; EndPoint oldEP=sock RemoteEndPoint; byte[] bb=new byte[ ]; while(true) ii=sock ReceiveFrom(bb ref oldEP);//接收数据 if(ii== )// 客户端连接断开 就会不停接收 个字节 break; receiveStr=Encoding Default GetString(bb bb Length); mand=ReadLineFrom(receiveStr ) ToLower();//ReadLineFrom读取字符串中的一行数据 Switch(mand) cace upload : fileName=ReadLineFrom(receiveStr ); fileSize=ReadLineFrom(receiveStr ); uploadFile(sock fileName Int Parse(fileSize));//接受数据方法 break; void uploadFile(Socket sock string fileName int fileSize) int loadSize= ; byte[] bb; int blen= ; NeorkStream stream=new NeorkStream(sock); FileStream fs=File OpenWrite(tempstr); while(loadSize if(loadSize>fileSize ) blen=fileSize loadSize; bb=new byte[blen]; int ii=stream Read(bb bb Length);// 实际接受数据时每次可能没有 个字节 fs Write(bb ii); loadSize+=ii; fs Close(); stream Close();
等待传值给线程中的变量 防止多用户造成冲突
客户端连接断开 就会不停接收 个字节
判断客户端是否断开要用这个方法实现 Sokcet里带的Connected不起作用 只要连接上 中途不出现发送和或接收数据错误 客户断开与否都是返回true Poll( SelectMode )返回任何模式都是true
实际接受数据时每次可能没有 个字节
客户端我就不写了 用TcpClient连接就可以了 当然实际应用中 可能就要自己写规则了
cha138/Article/program/Java/hx/201311/26331相关参考
关于JavaSocket编程的详细介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
知识大全 Java进阶 关于Java Socket编程的详细介绍[2]
Java进阶关于JavaSocket编程的详细介绍[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Java进阶 关于Java Socket编程的详细介绍[1]
Java进阶关于JavaSocket编程的详细介绍[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 Java Socket编程(一)Socket传输模式
JavaSocket编程(一)Socket传输模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java中的Socket编程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Socket是网络上
C#Socket基本编程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! viewplainpri
最基本的Socket编程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 示例程序是同步套接字程序
知识大全 Java网络编程-Java Socket编程(五)
Java网络编程-JavaSocket编程(五) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Java网络编程-Java Socket编程(一)
Java网络编程-JavaSocket编程(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Java网络编程-Java Socket编程(二)
Java网络编程-JavaSocket编程(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!