当前位置:首页 > 编程开发

Java基础 三步学会Java Socket编程(二)

webgou17年前 (2009-10-10)编程开发110

http://java.ccidnet.com/art/3539/20070606/1103869_1.html
第二步 多个客户同时连接

在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在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方法中,对输入进行处理,并产生结果,然后把结果返回给客户。 

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=42

标签: javasocket
分享给朋友:

“Java基础 三步学会Java Socket编程(二)” 的相关文章

GPS卫星导航定位系统基础知识介绍

GLOBAL Positioning System,简称GPS,即全球卫星定位系统,近年来得到了越来越广泛的应用,已经产生了可观的GPS产品需求。并且随着科技水平的提高、应用方向的不断开拓,GPS将会不容置疑的迅速渗透到人们的日常生活中来。 我们经常提到的GPS定位系统由美国军方所设计、控制。除此…

查看apk的versionCode的2种方式

 1.使用adb来查询,前提是你已经安装到设备上了。 ...…

VPN(虚拟专用网络)

VPN(虚拟专用网络)…

char,short ,int ,long,long long,unsigned long long数据范围

 速查表:char -128 ~ +127 (1 Byte)...…

什么是计算机图形学?

 什么是计算机图形学?...…

Windows 中不规则窗体的编程实现

一、序言 在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我 们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏 程序中使用…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。