已阅读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年多媒体技术基础考试题库(含答案)
- 节能考核问答题目及答案
- 三年级信息技术下册 走进大自然教学设计 龙教版
- 七年级数学下册 第8章 整式乘法8.5乘法公式 2完全平方公式教学设计(新版)冀教版
- 英语能力五级考试试题及答案
- 2026年极光下的雪山元宇宙场景设计
- 2026年全国保密教育培训考试题及答案
- 广播电视与视听传播概论 全套课件 第1-9章 广播电视与视听传播的历史演进-新媒体环境下的视听传播发展趋势
- 2026年广东省高考化学试卷(含答案及解析)
- 燃气调压器的维修保养与管理培训课件
- (正式版)DB11 1950-2021 《公共建筑无障碍设计标准》
- 知识清单-2026-2027学年统编版道德与法治九年级上册
- 2026年机加工检验员考试试题及答案
- 危重症患者护理要点课件
- 四川省四川公务员考试真题公安2026年
- 2026年食品安全协管员培训考试题库及答案
- 配电班工作制度
评论
0/150
提交评论