java网络编程学习之用java编写客户/服务器程序
来源:互联网 发布:node服务器 编辑:程序博客网 时间:2024/06/06 03:19
使用java 套接字socket编写简单的客户/服务器程序,程序实现了:在客户端输入信息,传到服务器端,再从服务器端传回信息,显示在客户端
小知识点:
如何用Eclipse运行两个进程? 答:run as之后 display selected console进行选择进程查看
看看效果(先启动服务器,再启动客户端程序)
上代码
package network;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.nio.Buffer;/** * 服务器程序 * @author zx * */public class EchoServer {private int port = 8000;private ServerSocket serverSocket;public EchoServer() throws IOException{serverSocket = new ServerSocket(port);System.out.println("服务器启动!");}public String echo(String msg) {return "echo "+msg;}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 serivce() {while(true){Socket socket = null;try {socket = serverSocket.accept();//等待客户连接System.out.println("New connection accepted"+socket.getInetAddress()+":"+socket.getPort());//获取到连接,输出信息BufferedReader br = getReader(socket);//取得从客户端获取socket的输出信息socket.getInputStream()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 (Exception e) {e.printStackTrace();}finally{if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}public static void main(String[] args) throws IOException {new EchoServer().serivce();}}
package network;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;/** * 客户端程序 * @author * */public class EchoClient {private String host = "localhost";private int port = 8000;private Socket socket;public EchoClient() throws IOException {socket = new Socket(host,port);}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(){try {System.out.println("客户端启动!");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) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) throws IOException {new EchoClient().talk();}}总结:一个简单的服务器/客户端程序 为接下来的学习打下基础!
0 0
- java网络编程学习之用java编写客户/服务器程序
- Java网络编程学习笔记(1)用java编写客户端/服务器程序(简易)
- Java编写简单客户/服务器程序
- 一.用java编写的入门客户/服务器通信程序
- 一.用java编写的入门客户/服务器通信程序
- 一.用java编写的入门客户/服务器通信程序
- WinSock网络编程学习(一)Echo客户/服务器程序
- socket编程之客户--服务器通信程序学习
- java学习之利用UDP编写网络聊天程序
- 网络编程知识(6)--用Java编写HTTP服务器
- Java编程规范之程序编写规范
- java 网络编程【6】 用UDP编写网络聊天程序 以及 TCP编程实例
- java学习之 网络编程
- java--------学习之《网络编程》
- Java学习之网络编程
- Java学习之网络编程
- linux网络编程之socket(三):最简单的回射客户/服务器程序
- linux网络编程之socket:最简单的回射客户/服务器程序、time_wait 状态
- 使用 POI 操纵 Excel 2007
- Linux系统下如何配置SSH?如何开启SSH?
- Android笔记 get方式提交数据到服务器 避免乱码 demo
- 为什么线程不能调用fork
- Git系列之多人协作
- java网络编程学习之用java编写客户/服务器程序
- 【c++程序】通过别名来交换两个数的值
- Hibernate HQL 中的select new map 使用实例 嵌套Map
- Ubuntu 14.04下安装SecureCRT 以及使用技巧
- 海泉湾海泉湾规划全文钢琴网
- linux:redhat:bash: setenforce: command not found
- 排序算法
- 6个值得推荐的Android开源框架简介
- MongoDB(三)mongoDB下载和安装