// ----------------------------------------- client ------------------------------
package org.boot.consumer.service;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import org.boot.outer.dto.UserDto;
public class ClientSocket {
public static void main(String[] args) {
socketReader();
}
public static void socketReader() {
try {
Socket socket = new Socket("127.0.0.1", 9090);
InputStream request = socket.getInputStream();
OutputStream response = socket.getOutputStream();
System.out.println("=> user start send request message.");
UserDto userDto = new UserDto();
userDto.setAddress("我住在上海");
userDto.setId(100012l);
userDto.setUserName("张爆爆");
StringBuffer sendRequest = new StringBuffer();
sendRequest.append("start\r\n");
sendRequest.append("user id " + userDto.getId() + "\r\n");
sendRequest.append("user name " + userDto.getUserName() + "\r\n");
sendRequest.append("user address " + userDto.getAddress() + "\r\n");
sendRequest.append("end");
System.out.println("send message:\r\n" + sendRequest.toString());
response.write(sendRequest.toString().getBytes("UTF-8"));
socket.shutdownOutput();
int len;
byte[] bytes = new byte[1024];
String result = null;
while ((len = request.read(bytes)) != -1) {
result = new String(bytes, 0, len, "UTF-8");
}
System.out.println("server response : " + result);
request.close();
response.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void socketInputStream() {
try {
Socket socket = new Socket("127.0.0.1", 9090);
OutputStream out = socket.getOutputStream();
String request = "你好服务器我在请求你。";
System.out.println("我发起了请求,我请的内容:" + request);
out.write(request.getBytes("UTF-8"));
System.out.println("我请求结束了。");
socket.shutdownOutput(); // 此处标识 请求发送完毕
InputStream in = socket.getInputStream();
StringBuffer result = new StringBuffer("");
int len;
byte[] bytes = new byte[1024];
while ((len = in.read(bytes))!= -1) {
result.append(new String(bytes , 0, len, "UTF-8"));
}
System.out.println("服务器响应我的内容 :" + result.toString());
in.close();
out.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
// ----------------------------------------- server ------------------------------
package org.boot.consumer.service;
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;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.alibaba.fastjson.JSON;
public class SocketServer {
public static void main(String[] args) {
serverSocket ();
}
public static void threadSocket () {
try {
//ExecutorService executorService = Executors.newFixedThreadPool(100);
//
//
//while (true) {
//Runnable runnable = new Runnable() {
//@Override
//public void run() {
//ServerSocket server = new ServerSocket(9090);
//Socket socket = server.accept();
//InputStream request = null;
//OutputStream response = null;
//BufferedReader reader = null;
//request = socket.getInputStream();
//response = socket.getOutputStream();
//reader = new BufferedReader(new InputStreamReader(request));
//System.out.println("=> server beagin recived message");
//StringBuffer content = new StringBuffer();
//String line = null;
//while ((line = reader.readLine())!= null) {
//content.append(line + "\r\n");
//if ("end".equals(line)) {
//break;
//}
//}
//System.out.println("=> server content\r\n" + content);
//response.write(new String("你好握手成功").getBytes("UTF-8"));
//}
//};
//executorService.submit(runnable);
//}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void serverSocket () {
try {
ServerSocket server = new ServerSocket(9090);
Socket socket = server.accept();
InputStream request = socket.getInputStream();
OutputStream response = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(request));
System.out.println("=> server beagin recived message");
String line = null;
StringBuffer content = new StringBuffer();
while ((line = reader.readLine())!= null) {
content.append(line + "\r\n");
if ("end".equals(line)) {
break;
}
}
System.out.println("=> server content\r\n" + content);
response.write(new String("你好握手成功").getBytes("UTF-8"));
request.close();
response.close();
reader.close();
server.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void serverSocket_1() {
try {
ServerSocket server = new ServerSocket(9090);
System.out.println("收到一个请求");
Socket socket = server.accept();
InputStream in = socket.getInputStream();
byte[] bytes = new byte[1024];
int len ;
StringBuffer result = new StringBuffer("");
while ((len = in.read(bytes)) != -1) {
result.append(new String(bytes, 0 , len, "UTF-8"));
}
System.out.println("请求的内容为:" + JSON.toJSONString(result));
OutputStream out = socket.getOutputStream();
out.write(new String("你好握手成功").getBytes("UTF-8"));
in.close();
server.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}