java网络编程____socket入门demo3
来源:互联网 发布:dota选手知乎 编辑:程序博客网 时间:2024/06/05 09:51
//服务端
package com.net.socket;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @info java_socket入门Demo3 * @author God 客户端与服务器端通信 * @see 参考资料 wind圣骑士blog */public class TcpSocketServer {public static void main(String[] args) {try {// 创建服务器端套接字ServerSocket serverSocket = new ServerSocket(3000);// 做一个循环一直监听while (true) {// 多客户端可做socket集合 noi的chanelSocket做的更好Socket socket = serverSocket.accept();// 创建读取的输入流线程Thread serverInputThread = new Thread(new ServerInputRunnable(socket));// 创建写入的输入流线程Thread serverOutputThread = new Thread(new ServerOutputRunnable(socket));// 启动线程 不停的读和写serverInputThread.start();serverOutputThread.start();}} catch (Exception e) {e.printStackTrace();}}}
package com.net.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;/** * @author God 服务器端____向客户端写入数据的线程 */public class ServerOutputRunnable implements Runnable {private Socket socket;public ServerOutputRunnable(Socket socket) {super();this.socket = socket;}@Overridepublic void run() {try {OutputStream os = socket.getOutputStream();while (true) {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));String line = reader.readLine();os.write(line.getBytes());}} catch (IOException e) {e.printStackTrace();}}}
//客户端
package com.net.socket;import java.net.Socket;public class SocketClient {public static void main(String[] args) throws Exception {// 创建客户点socket对象 连接服务器端socket 端口一致Socket socket = new Socket("127.0.0.1", 3000);// 创建客户端 独立的写的线程和读的线程Thread ClientInputThread = new Thread(new ClientInputRunnable(socket));Thread ClientOutputThread = new Thread(new ClientOutputRunnable(socket));ClientInputThread.start();ClientOutputThread.start();}}
package com.net.socket;import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class ClientInputRunnable implements Runnable {private Socket socket;public ClientInputRunnable(Socket socket) {super();this.socket = socket;}@Overridepublic void run() {try {// 获得输入流InputStream is = socket.getInputStream();while (true) {byte[] bytes = new byte[1024];int length = is.read(bytes);System.out.println("服务器:" + new String(bytes, 0, length));}} catch (IOException e) {e.printStackTrace();}}}
package com.net.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;public class ClientOutputRunnable implements Runnable {private Socket socket;public ClientOutputRunnable(Socket socket) {super();this.socket = socket;}@Overridepublic void run() {try {OutputStream os = socket.getOutputStream();while (true) {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));String line = reader.readLine();os.write(line.getBytes());}} catch (IOException e) {e.printStackTrace();}}}
0 0
- java网络编程____socket入门demo3
- java网络编程____socket入门demo1
- java网络编程____socket入门demo2
- Java网络编程入门
- Java网络编程入门
- Java网络编程入门
- 网络编程-java入门
- Java网络编程入门
- Java网络编程入门
- Java网络编程入门
- JAVA网络编程入门
- java动态代理Demo3
- java--Demo3(注册登录)
- Java网络编程入门学习
- 第一章java网络编程入门
- 第一章java网络编程入门
- Java入门_网络编程
- Java入门代码--网络编程
- 更改nginx默认服务目录
- Keepalived_vrrp: ip address associated with VRID not present in received packet
- 解决IntelliJ IDEA 创建Maven项目速度慢问题
- DB2 HADR 恢复灾备数据库
- ueditor 后端配置项没有正常加载,上传插件不能正常使用!jsp版本
- java网络编程____socket入门demo3
- Jmter学习之录制脚本
- Oracle存储过程编写
- LightOJ 1057Collecting Gold(状压DP)
- 项目中连个下载项目ctorrent和wget的编辑记录
- 用两个栈实现队列 & 两个队列实现栈
- C++内存管理学习堆和栈
- Linux系统下如何运行微信web开发者工具?
- 1013. Battle Over Cities (25)