客户端与服务器.doc_第1页
客户端与服务器.doc_第2页
客户端与服务器.doc_第3页
客户端与服务器.doc_第4页
客户端与服务器.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论