已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package faue.MutiUser;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import .ServerSocket;import .Socket;/* * 服务器端 * * author Faue */public class Server extends ServerSocket private static final int SERVER_PORT = 10000; /* * 构造方法,用于实现连接的监听 * * throws IOException */ public Server() throws IOException super(SERVER_PORT); try while (true) Socket socket = super.accept(); new Thread(new ClientMsgCollectThread(socket), getAndShow + socket.getPort().start(); new Thread(new ServerMsgSendThread(socket), send + socket.getPort().start(); catch (IOException e) e.printStackTrace(); public static void main(String args) throws IOException new Server(); /* * 该类用于创建接收客户端发来的信息并显示的线程 * * author Faue * version 1.0.0 */ class ClientMsgCollectThread implements Runnable private Socket client; private BufferedReader in; private StringBuffer inputStringBuffer = new StringBuffer(Hello); /* * 得到Socket的输入流 * * param s * throws IOException */ public ClientMsgCollectThread(Socket s) throws IOException client = s; in = new BufferedReader(new InputStreamReader(client .getInputStream(), GBK); public void run() try while (!client.isClosed() inputStringBuffer.delete(0, inputStringBuffer.length(); inputStringBuffer.append(in.readLine(); System.out.println(getMsg(inputStringBuffer.toString(); catch (IOException e) /e.printStackTrace(); System.out.println(client.toString() + is closed!); /* * 构造显示的字符串 * * param line * return */ private String getMsg(String line) return client.toString() + says: + line; /* * 该类用于创建发送数据的线程 * * author Faue * version 1.0.0 */ class ServerMsgSendThread implements Runnable private Socket client; private PrintWriter out; private BufferedReader keyboardInput; private StringBuffer outputStringBuffer = new StringBuffer(Hello); /* * 得到键盘的输入流 * * param s * throws IOException */ public ServerMsgSendThread(Socket s) throws IOException client = s; out = new PrintWriter(client.getOutputStream(), true); keyboardInput = new BufferedReader(new InputStreamReader(System.in); public void run() try while (!client.isClosed() outputStringBuffer.delete(0, outputStringBuffer.length(); outputStringBuffer.append(keyboardInput.readLine(); out.println(outputStringBuffer.toString(); catch (IOException e) /e.printStackTrace(); System.out.println(client.toString() + is closed!); 客户端:实现基于IP地址的连接,连接后也创建两个线程来实现信息的发送和接收/* * 创建日期 2009-3-7 * */package faue.MutiUser;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import .Socket;/* * 客户端 * * author Faue */public class Client private Socket mySocket; /* * 创建线程的构造方法 * * param IP * throws IOException */ public Client(String IP) throws IOException try mySocket = new Socket(IP, 10000); new Thread(new ServerMsgCollectThread(mySocket), getAndShow + mySocket.getPort().start(); new Thread(new ClientMsgSendThread(mySocket), send + mySocket.getPort().start(); catch (IOException e) /e.printStackTrace(); System.out.println(Server.IP: + IP + port:10000 can not be Connected); public static void main(String args) throws IOException try new Client(args0); catch (Exception e) System.out.println(输入的IP地址错误); /* * 该类用于创建接收服务端发来的信息并显示的线程 * * author Faue * version 1.0.0 */ class ServerMsgCollectThread implements Runnable private Socket client; private BufferedReader in; private StringBuffer inputStringBuffer = new StringBuffer(Hello); /* * 得到Socket的输入流 * * param s * throws IOException */ public ServerMsgCollectThread(Socket s) throws IOException client = s; in = new BufferedReader(new InputStreamReader(client .getInputStream(), GBK); public void run() try while (!client.isClosed() inputStringBuffer.delete(0, inputStringBuffer.length(); inputStringBuffer.append(in.readLine(); System.out.println(getMsg(inputStringBuffer.toString(); catch (IOException e) /e.printStackTrace(); System.out.println(client.toString() + is closed!); System.exit(0); /* * 构造输入字符串 * * param line * return */ private String getMsg(String line) return client.toString() + says: + line; /* * 该类用于创建发送数据的线程 * * author Faue * version 1.0.0 */ class ClientMsgSendThread implements Runnable private Socket client; private PrintWriter out; private BufferedReader keyboardInput; private StringBuffer outputStringBuffer = new StringBuffer(Hello); /* * 得到键盘的输入流 * * param s * throws IOException */ public ClientMsgSendThread(Socket s) throws IOException client = s; out = new PrintWriter(client.getOutputStream(), true); keyboardInput = new BufferedReader(new InputStreamReader(System.in); public void run() try while (!client.isClosed() outputStringBuffer.delete(0, outputStringBuffer.leng
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年和林格尔县事业单位人员招聘笔试备考题库及答案解析
- 2026年沐川县事业单位人员招聘笔试模拟试题及答案解析
- 2026年依安县公务员招聘笔试备考试题及答案解析
- 2026年南部县公务员招聘笔试参考题库及答案解析
- 2026年8月桂林市秀峰区招聘公益性岗位工作人员2人考试参考题库及答案详解
- 2026年大田县公务员招聘考试参考题库及答案解析
- 2026生物医药研发行业融资策略与投资风险管理研究
- 2026中国休闲旅游市场消费行为与投资机会研究报告
- 2026年江铜环境社会招聘1人考试备考试题及答案详解
- 2026年罗城仫佬族自治县事业单位人员招聘考试备考题库及答案解析
- 燃气调压器的维修保养与管理培训课件
- (正式版)DB11 1950-2021 《公共建筑无障碍设计标准》
- 知识清单-2026-2027学年统编版道德与法治九年级上册
- 2026年机加工检验员考试试题及答案
- 危重症患者护理要点课件
- 四川省四川公务员考试真题公安2026年
- 2026年食品安全协管员培训考试题库及答案
- 配电班工作制度
- 脑肿瘤护理查房课件
- 2025年宁波市海欣控股集团有限公司第二批次公开招聘国有企业工作人员9人笔试备考试题及答案解析
- 临床放射生物学教案(2025-2026学年)
评论
0/150
提交评论