02--Java Socket编程--IO方式
2017-01-16 17:30
155 查看
一、基础知识
1. TCP状态转换知识,可参考:
http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html2. 数据传输
package com.yyn.io.net; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Iterator; import java.util.stream.Stream; public class MultiThreadServerClient { public static final int PORT = 12002; public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub Socket socket = new Socket("127.0.0.1",PORT); // in stream from console InputStreamReader isr = new InputStreamReader(System.in,"UTF-8"); BufferedReader in = new BufferedReader(isr); // out stream from socket OutputStreamWriter osw = new OutputStreamWriter(new BufferedOutputStream(socket.getOutputStream()), "UTF-8"); PrintWriter out = new PrintWriter(osw); String command = null; while(true){ System.out.println("#######################"); command = in.readLine(); if (command == null) { socket.shutdownInput(); break; } command = command.trim().toUpperCase(); if (command.equals("EXIT")) { socket.shutdownInput(); break; } out.println(command); //必须用println方法,不能用write,否则服务端无法获取数据,会堵塞 out.flush(); System.out.println("data send to server:"+command); } } }
View Code
3. 服务器一次向多个客户端发送信息
相关文章推荐
- Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
- JAVA Socket编程学习5--IO模型
- java网络编程(一) socket方式TCP和Datagram的UDP
- 传统Socket编程传递POJO(使用Java自带的序列化方式)
- day12 Java IO 中的文件路径 Propertity 文件 Socket 网络编程
- Java SocketIO网络编程
- Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
- Java并发编程札记-(三)JUC原子类-02原子方式更新单个变量
- Java基础知识强化之网络编程笔记02:Socket通信原理图解
- 黑马程序员--10.网络编程--02.【网络传输三要素在Java中的体现】【TCP和UDP概念】【Socket基本概念】
- 以编程方式使用批语句节省 数据库 IO 来提高性能
- Java网络编程精解之ServerSocket用法详解三
- Java网络编程精解之ServerSocket用法详解一2
- Java网络编程基础 1 建立一个提供当前时间字符串的ServerSocket
- 三步学会Java Socket编程
- 三步学会Java Socket编程
- 三步学会Java Socket编程
- 三步学会Java Socket编程
- 一篇不错的介绍Java Socket编程的文章
- JAVA编程思想:第10章 Java IO系统