高级java实验三

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:基于多线程的Socket通信

班级:计科F1202

姓名:黄浩翔学号:201216010110 实验目的:通过将Socket通信和多线程的知识结合应用,掌握基于多线程的通信设计方法。

实验内容:创建客户端Socket;创建服务器端Socket;建立基于多线程的服务器段监听和数据处理机制;Socket的启动和管理。

实验步骤:

//服务端

package基于多线程Socket通信;

import .ServerSocket;

import .Socket;

public class MultiServer {

public static void main(String args[]) {

ServerSocket server=null;

int count=0;

boolean listening =true;

try{

try{

server =new ServerSocket(6000);

System.out.println("服务器启动:");

} catch (Exception e){

System.out.println("不能接听服务");

}

while(listening){

Socket socket=server.accept();

count++;

System.out.println("Accept "+count+" Client!");

Thread read = new

ReadThread(socket,"[client"+count+"]");

read.start();

}

server.close();

} catch (Exception e){

System.out.println("Error:" + e);

}

}

}

//多线程

package基于多线程Socket通信;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import .Socket;

public class ReadThread extends Thread {

Socket socket=null;

String client;

public ReadThread(Socket socket,String client){

this.socket=socket;

this.client=client;

}

public ReadThread(Socket socket,String side ,int clientnum){

this(socket,side);

}

public void run(){

try{

String line="";

BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

while(line!=null&&!line.equals("bye")){

line =is.readLine();

System.out.println(client+" read :" +line);

}

is.close();

socket.close();

} catch (Exception e) {

System.out.println("Error : " +e);

}

}

}

//客户端

package基于多线程Socket通信;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import .Socket;

public class Client {

public static void main (String args[]){

try{

Socket socket=new

Socket("172.18.69.167",6000);

System.out.println("请输入:");

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

PrintWriter os=new

PrintWriter(socket.getOutputStream());

String readline;

readline =sin.readLine();

while (!readline.equals("bye")){

os.println(readline);

os.flush();

readline= sin.readLine();

}

os.close();

socket.close();

} catch (Exception e){

System.out.println("Error" + e);

}

}

}

实验结果:

相关文档
最新文档