Java 基于TCP/IP 实现简单的 socket 通信
2017-04-16 23:43
1011 查看
服务器端
package com.learn; 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; /** * 基于TCP协议的Socket通信,实现用户登录 服务端 * */ public class Server { public static void main(String[] args) { try { // 1.创建一个服务器端的 Socket,即 ServerSocket,指定绑定的端,并监听 ServerSocket server = new ServerSocket(8888); // 2.调用 accept 方法开始监听,等待客户端连接 System.out.println("****服务器开始启动,等待客户端上线****"); Socket socket = server.accept(); // 3.获取一个输入流,用来读取客户端所发送的登录信息 InputStream is = socket.getInputStream();// 字节输入流 InputStreamReader isr = new InputStreamReader(is);// 将字节流转为 BufferedReader br = new BufferedReader(isr);// 为输入流添加缓冲 String info = null; while ((info = br.readLine()) != null) { System.out.println("我是服务器,客户端说" + info); } socket.shutdownInput();// 关闭输入流 // 4.获取输出流 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os);// 包装打印流 pw.write("好的,我收到消息了,你可以出去玩了"); pw.flush(); socket.shutdownOutput(); // 5.关闭资源 pw.close(); br.close(); isr.close(); is.close(); server.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
客户端
package com.learn; 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; import java.net.UnknownHostException; /* * 客户端 * */ public class Client { public static void main(String[] args) { try { // 1.创建 socket 指定服务器地址和端 Socket client = new Socket("192.168.6.184", 8888); // 2.客户端向服务器发送登录信息 OutputStream os = client.getOutputStream();// 字节输出流 PrintWriter pw = new PrintWriter(os); pw.write("用户名: admin;密码:123"); pw.flush(); client.shutdownOutput();// 关闭输出流 // 3. 获取输入流 InputStream is = client.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String info = null; while ((info = br.readLine()) != null) { System.out.println("服务器发来消息说:" + info); } // 3.关闭其他资源 pw.close(); os.close(); client.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- Java 基于TCP/IP 实现简单的 socket 通信
- Java 基于 TCP/IP 实现 Socket中的多客户端通信
- Java 基于 TCP/IP 实现 Socket中的多客户端通信
- java分布式开发TCP/IP NIO无阻塞 Socket((基于消息方式实现系统间的通信) )(转)
- [分布式java]基于JavaAPI实现消息方式的系统间通信:TCP/IP+NIO
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- JAVA实现基于Tcp协议的简单Socket通信实例
- Java——基于java自身包实现消息系统间的通信(TCP/IP+NIO)
- 基于TCP/IP的SOCKET接口实现网络通信
- 基于Tcp&UDP协议的简单Socket通信实例(JAVA)
- Java基于TCP/IP的Socket通信
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- Java TCP/IP Socket,基于NIO的TCP通信
- java基于TCP的socket编程简单实现[代码实践过]
- Java——基于java自身包实现消息系统间的通信(TCP/IP+BIO)
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- Java 实现基于 UDP 的简单 socket 通信
- [分布式java]基于JavaAPI实现消息方式的系统间通信:TCP/IP+BIO
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
- Java——基于java自身包实现消息系统间的通信(TCP/IP+BIO)