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();
}
}
//运行结果
//