免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3413 | 回复: 0
打印 上一主题 下一主题

[收藏]ServeOneSocket.java 服务端源程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-09-18 15:04 |只看该作者 |倒序浏览
//ServeOneSocket.java 服务端源程序

import java.io.*&#59;
import java.net.*&#59;

public class ServeOneSocket extends Thread {

private Socket socket&#59;
private BufferedReader in&#59;
private PrintWriter out&#59;
private String content&#59;

/**
* Constructor
*/
public ServeOneSocket(Socket s,String c)throws IOException {
socket=s&#59;
content=c&#59;
in=new BufferedReader(
new InputStreamReader(
socket.getInputStream()))&#59;
//enable auto-flush
out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())),true)&#59;
start()&#59;//calls run()
}

public void run(){
try{
while (true){
String str=in.readLine()&#59;
if (str.equals("END&quot)break&#59;
System.out.println("Echoing:"+str)&#59;
out.println(str)&#59;
out.println(content)&#59;
}
System.out.println("Closing...&quot&#59;
}catch(IOException e){
}finally{
try{
socket.close()&#59;
}catch(IOException e){}
}
}
}

//SocketClientThread.java 客户端源程序

import java.net.*&#59;
import java.io.*&#59;

class SocketClientThread extends Thread{
private Socket socket&#59;
private BufferedReader in&#59;
private PrintWriter out&#59;
private static int counter=0&#59;
private int id=counter++&#59;
private static int threadcount=0&#59;
final int port=8110&#59;

public static int threadCount(){
return threadcount&#59;
}

public SocketClientThread(InetAddress addr){
System.out.println("Making client:"+id)&#59;
threadcount++&#59;
try{
socket=new Socket(addr,port)&#59;
}catch(IOException e){
}
try{
in=new BufferedReader(
new InputStreamReader(
socket.getInputStream()))&#59;
out=new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())),true)&#59;
start()&#59;
}catch(IOException e){
try{
socket.close()&#59;
}catch(IOException e2){}
}
}

public void run(){
try{
for (int i=0&#59;i<25&#59;i++){
out.println(&quot;Client:&quot;+id+&quot;:&quot;+i)&#59;
String str=in.readLine()&#59;
System.out.println(str)&#59;
}
out.println(&quot;END&quot&#59;
}catch(IOException e){
}finally{
try{
socket.close()&#59;
}catch(IOException e){}
threadcount--&#59;
}
}
}

public class MultiSocketClient {
static final int MAX_THREADS=10&#59;
/**
* main
* @param args
*/
public static void main(String[] args)throws IOException,InterruptedException {
InetAddress addr=InetAddress.getByName(null)&#59;
while (true){
if (SocketClientThread.threadCount()<MAX_THREADS)
new SocketClientThread(addr)&#59;
Thread.currentThread().sleep(100)&#59;
}
}
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP