java 基于TCP的Socket网络通信
2017-04-19 21:44
519 查看
client代码
import java.io.BufferedReader; 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; public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8889); OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("用户名:jack;密码:789"); pw.flush(); socket.shutdownOutput(); InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String info = null; while ((info = br.readLine()) != null) { System.out.println("Getting info from Server is:" + info); } socket.shutdownInput(); br.close(); is.close(); pw.close(); os.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
Server代码(分成两个类出来,处理成多线程)
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.InetAddress; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8889); Socket socket = null; int count = 0; System.out.println("**Server searching loading from ...***"); while (true) { socket = serverSocket.accept(); ServerThread serverThread = new ServerThread(socket); serverThread.setPriority(4); serverThread.start(); count++; System.out.println("Client count is:" + count); InetAddress address = socket.getInetAddress(); System.out.println("当前客户端的IP:" + address); } } catch (IOException e) { e.printStackTrace(); } } }
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; public class ServerThread extends Thread { Socket socket = null; public ServerThread(Socket socket) { this.socket = socket; } @Override public void run() { super.run(); InputStream is = null; BufferedReader br = null; OutputStream os = null; PrintWriter pw = null; try { is = socket.getInputStream(); br = new BufferedReader(new InputStreamReader(is)); String info = null; while ((info = br.readLine()) != null) { System.out.println("Getting info from Client is:" + info); } socket.shutdownInput(); os = socket.getOutputStream(); pw = new PrintWriter(os); pw.write("Welcome come to you !!"); pw.flush(); socket.shutdownOutput(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (pw != null) pw.close(); if (os != null) os.close(); if (br != null) br.close(); if (is != null) is.close(); if (socket != null) socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
相关文章推荐
- java学习之路——基于TCP的Socket网络通信实例
- 一个基于VB.net的异步Socket网络TCP通信可防止任意一端意外终止TCP连接的类,。
- 基于tcp_socket通信的网络编程
- Java——多人聊天室(基于TCP的网络编程——Socket)
- uc笔记10---网络通信,套接字(Socket),基于 TCP 协议的客户机/服务器模型
- Java基于TCP/IP的Socket通信
- Java TCP使用Socket进行网络通信(4)之往返发送
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- 网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
- Java网络编程基础(二)-- 基于TCP/IP的Socket编程
- 网络编程_TCP_Socket通信_聊天室_客户端多线程_群聊JAVA191-192
- 基于Java的socket网络通信
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- socket 网络编程快速入门(二)教你编写基于UDP/TCP的服务端多线程通信
- Java TCP/IP Socket,基于NIO的TCP通信
- Java TCP使用Socket进行网络通信(3)
- 基于Java的TCP Socket通信详解(计算机端/Android手机端)
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- Java 基于 TCP/IP 实现 Socket中的多客户端通信
- socket 网络编程快速入门(一)教你编写基于UDP/TCP的服务(客户端)通信