Java编写简单客户/服务器程序
来源:互联网 发布:gm3188写频软件 编辑:程序博客网 时间:2024/05/16 15:20
1.建立EchoServer服务器,监听来自客户的连接
EchoServer.java:
package chapter01;import java.io.*;import java.net.*;public class EchoServer {private int port = 8000; //服务器端口号(IP默认为本地主机IP)private ServerSocket serverSocket; //ServerSocketpublic EchoServer() throws IOException{serverSocket = new ServerSocket(port);System.out.println("服务器启动");}public String echo(String msg){return "echo" + msg;}/* *分别用PrintWriter和BufferedReader 修饰socket中的输入输出流 */private PrintWriter getWriter(Socket socket) throws IOException{OutputStream socketOut = socket.getOutputStream();return new PrintWriter(socketOut,true);}private BufferedReader getReader(Socket socket) throws IOException{InputStream socketIn = socket.getInputStream();return new BufferedReader(new InputStreamReader(socketIn));}public void service(){while(true){ //循环监听Socket socket = null;try{socket = serverSocket.accept(); //等待一个连接System.out.println("New connection accepted"+socket.getInetAddress()+":"+socket.getPort());BufferedReader br = getReader(socket); //从客户端读信息的流PrintWriter pw = getWriter(socket); //向客户端写信息的流String msg = null;while((msg=br.readLine())!=null){ System.out.println(msg);pw.println(echo(msg));if(msg.equals("bye")){break;}}}catch(IOException e){e.printStackTrace();}finally{try{if(socket!=null){socket.close();}}catch(IOException e){e.printStackTrace();}}}}public static void main(String argsp[]) throws IOException{new EchoServer().service();}}
2.EchoClient向服务器发出连接
EchoClient.java:
package chapter01;import java.net.*;import java.io.*;public class EchoClient {private String host = "127.0.0.1"; //指定要连接的服务器IP地址private int port = 8000; //指定要连接的服务器端口号private Socket socket;public EchoClient() throws IOException{socket = new Socket(host,port);}public static void main(String[] args) throws IOException {new EchoClient().talk();}/* *分别用PrintWriter和BufferedReader 修饰socket中的输入输出流 */private PrintWriter getWriter(Socket socket) throws IOException{OutputStream socketOut = socket.getOutputStream();return new PrintWriter(socketOut,true);}private BufferedReader getReader(Socket socket) throws IOException{InputStream socketIn = socket.getInputStream();return new BufferedReader(new InputStreamReader(socketIn));}public void talk() throws IOException{try{BufferedReader br = getReader(socket); //从服务器读信息的流PrintWriter pw = getWriter(socket); //向服务器写信息的流BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in)); //从本地控制台读取输入的流String msg =null;while((msg=localReader.readLine())!=null){pw.println(msg);System.out.println(br.readLine());if(msg.equals("bye")){break;}}}catch(IOException e){e.printStackTrace();}finally{try{socket.close();}catch(IOException e){e.printStackTrace();}}}}
0 0
- Java编写简单客户/服务器程序
- 一.用java编写的入门客户/服务器通信程序
- 一.用java编写的入门客户/服务器通信程序
- 一.用java编写的入门客户/服务器通信程序
- java网络编程学习之用java编写客户/服务器程序
- 简单的服务器和客户程序
- 简单的Linux客户-服务器网络程序
- 编写简单java程序
- 简单java程序编写
- 编写简单java程序
- 编写简单java程序
- Java 编写简单的服务器
- 简单的客户/服务器程序(基于windows Socket API)
- 【Unix 网络编程】TCP 客户/服务器简单 Socket 程序
- 【Unix 网络编程】UDP 客户/服务器简单 Socket 程序
- 一个简单的客户-服务器的Socket通信程序
- 简单的回射客户/服务器程序 read write
- 编写简单的java程序
- 求一个连通图的割点(去掉一个点后图不再连通)
- 关于调用android4.4系统的图片与剪切版的黑边问题
- 朵拉影像开发日记 12.02
- 初学Perl 用Perl解决了自己的小问题
- 高宏-感知大数据获取与计算
- Java编写简单客户/服务器程序
- BindingNavigator 类 - MSDN
- Domino实现外网邮件转发功能配置
- Problem E: Matrix Problem : Array Practice
- Android Studio 快捷键整理分享-SadieYu
- Android 屏幕适配
- java多线程之其他知识简介
- UVA - 10010 Where's Waldorf?
- UART与COM口之区别