知识大全 关于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

相关参考

知识大全 关于Java Socket编程的详细介绍

关于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编程

Java中的Socket编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Socket是网络上

知识大全 C#Socket基本编程

C#Socket基本编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  viewplainpri

知识大全 最基本的Socket编程

最基本的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)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!