三步学会Java Socket编程2

转载 2004年11月02日 23:50:00
第二步 多个客户同时连接

  在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在java中,实现以上功能特点是非常容易的。

  设计原理:

  主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。运用Thread类或Runnable接口来实现是不错的办法。

  {实现消息共享}

import java.io.*;
import java.net.*;

public class Server extends ServerSocket
{
private static final int SERVER_PORT = 10000;

public Server() throws IOException
{
super(SERVER_PORT);

try
{
while (true)
{
Socket socket = accept();
new CreateServerThread(socket);
}
}
catch (IOException e)
{}
finally
{
close();
}
}
//--- CreateServerThread
class CreateServerThread extends Thread
{
private Socket client;
private BufferedReader in;
private PrintWriter out;

public CreateServerThread(Socket s) throws IOException
{
client = s;

in = new BufferedReader(new InputStreamReader(client.getInputStream(), "GB2312"));
out = new PrintWriter(client.getOutputStream(), true);
out.println("--- Welcome ---");
start();
}

public void run()
{
try
{
String line = in.readLine();

while (!line.equals("bye"))
{
String msg = createMessage(line);
out.println(msg);
line = in.readLine();
}
out.println("--- See you, bye! ---");
client.close();
}
catch (IOException e)
{}
}

private String createMessage(String line)
{
xxxxxxxxx;
}
}

public static void main(String[] args) throws IOException
{
new Server();
}
}

  这个程序监听10000端口,并将接入交给CreateServerThread线程运行。CreateServerThread线程接受输入,并将输入回应客户,直到客户输入"bye",线程结束。我们可以在createMessage方法中,对输入进行处理,并产生结果,然后把结果返回给客户

三步学会Java Socket编程

  第一步 充分理解Socket   1.什么是socket   所谓socket通常也称作"套接字",用于描述IP地址和端口,是...
  • www_extract_com_cn
  • www_extract_com_cn
  • 2006年12月26日 17:10
  • 361

三步学会Java Socket编程

1.什么是socket  所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。  以J2SDK-1.3为例,So...
  • Ninth
  • Ninth
  • 2004年09月17日 16:27
  • 1300

三步学会Java Socket编程

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";...
  • java169
  • java169
  • 2008年05月25日 03:20
  • 156

三步学会Java socket编程

第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以J...
  • coolcloud520
  • coolcloud520
  • 2009年09月19日 12:42
  • 224

三步学会Java Socket编程(二)

三步学会Java Socket编程(二)   第二步 多个客户同时连接 在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够...
  • xiaoxiong0309
  • xiaoxiong0309
  • 2015年04月29日 10:33
  • 140

三步学会java Socket编程(三)

第三步 实现信息共享:在Socket上的实时交流    网络的伟大之一也是信息共享,Server可以主动向所有Client广播消息,同时Client也可以向其它Client发布消息。下面看看如...
  • zhang434
  • zhang434
  • 2013年10月25日 08:48
  • 478

三步学会java Socket编程(二)

第二步 多个客户同时连接    在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在java中,实...
  • zhang434
  • zhang434
  • 2013年10月25日 08:47
  • 472

三步学会Java Socket编程1

文章来源:http://www.yesky.com/SoftChannel/72342371961929728/20020704/1618964.shtml第一步 充分理解Socket  1.什么是s...
  • shaobotao
  • shaobotao
  • 2004年11月02日 23:49
  • 1555

三步学会Java Socket编程(三)

三步学会Java Socket编程(三)  第三步 实现信息共享:在Socket上的实时交流 网络的伟大之一也是信息共享,Server可以主动向所有Client广播消息,同时Cli...
  • xiaoxiong0309
  • xiaoxiong0309
  • 2015年04月29日 10:37
  • 196

三步学会Java Socket编程3

第三步 实现信息共享:在Socket上的实时交流  网络的伟大之一也是信息共享,Server可以主动向所有Client广播消息,同时Client也可以向其它Client发布消息。下面看看如何开发一个可...
  • shaobotao
  • shaobotao
  • 2004年11月02日 23:51
  • 783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三步学会Java Socket编程2
举报原因:
原因补充:

(最多只允许输入30个字)