Java套接字编程简单示例
2014-09-12 18:07
363 查看
服务端:
客户端:
package com.zzj.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class SocketServerTest { /** * @param args */ public static void main(String[] args) { try { // 构造方法绑定了一个端口 ServerSocket serverSocket = new ServerSocket(8888); /** * serverSocket.accept()等待客户端连接,是一个阻塞方法,直到有客户端连接时才会返回。 * 此方法返回的是包含客户端信息的套接字。 该方法成功返回之后,服务器就和客户端建立了一个可靠的连接,可以相互发送和接收消息了 */ Socket socket = serverSocket.accept(); System.out.println("IP:" + socket.getInetAddress() + ",port:" + socket.getPort()); /** * 使用输入流接收消息 */ InputStream inputStream = socket.getInputStream();// 获取输入管道 BufferedReader reader = new BufferedReader(new InputStreamReader( inputStream)); // readLine()是阻塞方法,直到读到内容并且遇到终止符(“\r”、“\n”、“\r\n”等等)或者到达流的末尾(返回Null)才返回 System.out.println(reader.readLine()); /** * 使用输出流发送消息 */ OutputStream outputStream = socket.getOutputStream();// 获取输出管道 // 末尾必须加终止符,否则另一端的bufferedreader.readline()方法会处于阻塞状态,直到流关闭 outputStream.write("Hello,client!\r".getBytes()); outputStream.flush(); outputStream.close(); inputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
客户端:
package com.zzj.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class SocketTest { /** * @param args */ public static void main(String[] args) { try { /** * 构造方法指定了远程主机的IP和端口号。 成功创建对象之后,客户端就和服务器建立了一个可靠的连接,可以相互发送和接收消息了 */ Socket socket = new Socket("127.0.0.1", 8888); /** * 使用输出流发送消息 */ OutputStream outputStream = socket.getOutputStream();// 获取输出管道 // 末尾必须加终止符,否则另一端的bufferedreader.readline()方法会处于阻塞状态,直到流关闭 outputStream.write("Hello,server!\r".getBytes()); outputStream.flush(); /** * 使用输入流接收消息 */ InputStream inputStream = socket.getInputStream();// 获取输入管道 BufferedReader reader = new BufferedReader(new InputStreamReader( inputStream)); // readLine()是阻塞方法,直到读到内容并且遇到终止符(“\r”、“\n”、“\r\n”等等)或者到达流的末尾(返回Null)才返回 System.out.println(reader.readLine()); outputStream.close(); inputStream.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- JAVA套接字(Socket)101七天系列—第四天【一个简单示例】
- java TCPSocket编程 简单示例
- JAVA 网络编程简单示例
- Java网络编程实现的简单端口扫描器示例
- Java UDP网络编程 - 最简单示例
- java网络编程——Socket和ServerSocket,套接字编程——简单聊天室改进
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- java TCPSocket编程 简单示例3
- Java UDP网络编程 - 最简单示例(一)
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Python网络编程之TCP套接字简单用法示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例
- Java UDP网络编程 - 最简单示例