package test;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * socket入门demo2
 * 
 * @author God 可以和客户端socket进行信息交互
 */
public class SocketServer {
	public static void main(String[] args) throws Exception {
		// 当服务器端socket和客户端soclet连接时 获取输入流和输出流信息 交互
		// 创建服务器端serverSocket对象 定义端口
		System.out.println("socket 服务端启动中等待连接.....");
		ServerSocket ss = new ServerSocket(3000);
		// 监听连接
		Socket socket = ss.accept();
		if (socket != null) {
			System.out.println("客户端socket连接服务器成功!!!");
		}
		// 根据socket读取客户端socket中的信息
		InputStream is = socket.getInputStream();
		// 根据socket从服务器端向客户端写入信息
		OutputStream os = socket.getOutputStream();
		byte[] bytes = new byte[200];
		int length = 0;
		length = is.read(bytes);
		String str = new String(bytes, 0, length);
		System.out.println(str);
		// 服务器端的输出
		os.write("Tcpserver::客户端 ,我是服务器 已接收到你的请求!!".getBytes());
		// 关闭资源
		is.close();
		os.close();
		socket.close();
	}
}

 

//运行结果

 

//客户端

 

package test;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class SocketClient {
	public static void main(String[] args) throws Exception {
		// 根据约定和协议 连接服务器端的socket
		Socket socket = new Socket("127.0.0.1", 3000);
		// 根据socket对象像服务器端写入数据
		OutputStream os = socket.getOutputStream();
		os.write("TcpClient:你好服务端我正向你发送请求".getBytes());
		// 读取服务器端的数据
		InputStream is = socket.getInputStream();
		byte[] buffer = new byte[200];
		int length = is.read(buffer);
		System.out.println("内容" + new String(buffer, 0, length));
		// 关闭资源
		is.close();
		os.close();
		socket.close();
	}
}

//运行结果

 

 

//