Java Socket语句中While循环的使用方法

开发 后端
Java Socket语句在使用的时候有很多的小语法需要我们注意,那么首先我们就先来看看有关While循环语句的使用方法。

Java Socket语句在使用的时候有很多时候都需要我们注意小语法的使用,其中While循环就是一个,这个程序只是简单的两台计算机之间的通讯.如果是多个客户同时访问一个服务器呢?你可以试着再运行一个客户端,结果是会抛出异常的.那么多个客户端如何实现呢?

 

其实,简单的分析一下,就可以看出客户和服务通讯的主要通道就是Java Socket语句本身.而服务器通过accept方法就是同意和客户建立通讯.这样当客户建立Java Socket语句的同时.服务器也会使用这一根连线来先后通讯.那么既然如此只要我们存在多条连线就可以了.那么我们的程序可以变为如下:

 

服务器:

 

 

  1. import java.io.*;   
  2. import java.net.*;   
  3. public class MyServer {   
  4. public static void main(String[] args) throws IOException{   
  5. ServerSocket server=new ServerSocket(5678);   
  6. while(true){   
  7. Socket client=server.accept();   
  8. BufferedReader in=new BufferedReader(new InputStream
    Reader(client.getInputStream()));   
  9. PrintWriter out=new PrintWriter(client.getOutputStream());   
  10. while(true){   
  11. String str=in.readLine();   
  12. System.out.println(str);   
  13. out.println("has receive....");   
  14. out.flush();   
  15. if(str.equals("end"))   
  16. break;   
  17. }   
  18. client.close();   
  19. }   
  20. }  
  21. }  

 

 

这里仅仅只是加了一个外层的While循环.这个循环的目的就是当一个客户进来就为它分配一个Java Socket语句直到这个客户完成一次和服务器的交互,这里也就是接受到客户的"End"消息.那么现在就实现了多客户之间的交互了.但是.问题又来了.这样做虽然解决了多客户,可是是排队执行的.也就是说当一个客户和服务器完成一次通讯之后下一个客户才可以进来和服务器交互.无法做到同时服务.那么要如何才能同时达到既能相互之间交流又能同时交流呢?很显然这是一个并行执行的问题了.所以线程是最好的解决方案.

【编辑推荐】

  1. Java Socket多线程如何支持服务器模型
  2. Java Socket通信如何摆平自身端口问题
  3. Java Socket通信如何支持有关的API
  4. Java Socket会话如何实施共享
  5. Java SocketAPI关键代码详细使用介绍
责任编辑:张浩 来源: 博客园
相关推荐

2021-02-25 09:35:32

语句elsePython

2010-10-08 16:01:17

mysql UPDAT

2010-03-09 14:00:20

Python循环语句

2010-03-19 14:28:58

Java Socket

2009-11-10 11:30:12

VB.NET循环语句

2010-03-15 18:18:33

Java多线程

2010-10-08 16:49:01

MySQL alter

2010-09-07 10:19:31

SQL语句

2010-09-09 16:34:19

SQL循环while

2020-12-11 05:57:01

Python循环语句代码

2009-12-28 14:42:03

ADO语句

2010-09-07 14:56:49

SQL语句CASE WHEN

2010-03-16 11:05:53

Java while循

2010-09-03 14:39:15

SQLSELECT语句

2010-09-03 15:47:40

SQL语句锁定

2010-09-03 14:47:50

SQLSELECT语句

2010-11-04 11:32:37

DB2 CREATE

2010-09-03 11:25:58

SQL删除

2010-01-07 15:42:57

VB.NET WhilEnd While循环

2010-09-07 16:38:36

SQL语句SELECT DIST
点赞
收藏

51CTO技术栈公众号