java网络编程(一)单线程网络编程
2015-01-30 10:08
351 查看
1 服务端实现的是通过系统输入后向客户端打印数据,如果打印的数据内容为bye则结束线程
服务端的代码如下:
2 客户端: 客户端通过从输入流中读取数据,通过bufferedReader按行读取出来打印,如果读取出来的结果为bye则结束客户端
客户端代码为:
服务端的代码如下:
package com.sun.net; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * 类名: OneThreadSocketServer * 包名: com.sun.net * 作者: Administrator * 时间: 2015年1月26日 上午9:17:38 * 描述: */ public class OneThreadSocketServer { private int port = 10000; private ServerSocket server; public OneThreadSocketServer() throws Exception{ server = new ServerSocket(port); } public BufferedReader getReader(Socket socket) throws Exception{ return new BufferedReader(new InputStreamReader(System.in)); } public PrintWriter getWriter(Socket socket) throws Exception{ return new PrintWriter(socket.getOutputStream()); } public void talk(){ try { Socket socket = server.accept(); BufferedReader br = getReader(socket); PrintWriter pw = getWriter(socket); String msg = null; while(true){ msg = br.readLine(); pw.println(msg); pw.flush(); if(msg.trim().equals("bye"))break; } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { new OneThreadSocketServer().talk(); } }
2 客户端: 客户端通过从输入流中读取数据,通过bufferedReader按行读取出来打印,如果读取出来的结果为bye则结束客户端
客户端代码为:
package com.sun.net; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Socket; /** * 类名: OneThreadSocketClient * 包名: com.sun.net * 作者: Administrator * 时间: 2015年1月26日 上午9:17:19 * 描述: */ public class OneThreadSocketClient { private String serverIp; private int port; private Socket socket; public OneThreadSocketClient(){ serverIp = "192.168.1.103"; port = 10000; } public BufferedReader getReader(Socket socket) throws Exception{ return new BufferedReader(new InputStreamReader(socket.getInputStream())); } public void speak(){ try { socket = new Socket(serverIp,port); BufferedReader br = getReader(socket); String msg = null; while(true){ msg = br.readLine(); System.err.println(msg); if(msg.trim().equals("bye"))break; } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new OneThreadSocketClient().speak(); } }
相关文章推荐
- Java网络编程之单线程下载文件设置显示进度
- [java网络编程]线程与进程
- Java网络编程:从线程返回信息。
- Java网络编程 线程
- Java线程——线程池结合网络编程
- 通过培训学到的一个java的基于线程,网络编程等的文件多线程断点下载器(断点功能还在操作实践中)
- java网络编程-双线程实现UDP通信
- Java线程及网络编程简介
- Java网络编程—(4)线程下
- 实训 Java基础知识---流,线程,网络编程
- 读书笔记-java网络编程-3线程-java线程概述
- [java网络编程]线程的互斥
- 读书笔记-java网络编程-3线程-从线程返回信息
- Java网络编程之单线程下载文件设置显示进度(一)
- Java网络编程—(3)线程上
- Java网络编程学习笔记(三)线程
- 第八讲 Java网络编程
- JAVA网络编程
- JAVA的网络功能与编程 二
- Java网络编程入门学习