周报
(写了第三次了,提交好几次都被拒绝访问了,就离谱)来公司已经一个多月了,这段时间接触了好几个项目,对于原本比较抵触的前端我也学习了很多,以后会偏向全栈发展,现在我们公司的业务原因,我针对了sockt网络编程和就Javafx页面进行了学习,这个周分别做了两个demo,学习了modus网络编程协议,aop切面日志,希望未来能接触更多的技术,接触更多的项目,毕竟对于实习生来说实习中的项目经验才是最为宝贵的东西。我会抽空写一下博客,记录一下学习的过程,为以后的发展早做准备


(系统多图片上传有问题)
import com.zktd.data_acquisition.utils.ByteUtil;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 发送消息线程
*/
class PUCSend extends Thread{
private Socket socket;
private Scanner scanner;
public PUCSend(Socket socket,Scanner scanner) {
this.socket = socket;
this.scanner = scanner;
}
@Override
public void run() {
this.sendMsg();
}
private void sendMsg() {
PrintWriter pw = null;
try {
pw = new PrintWriter(this.socket.getOutputStream());
while (true) {
String msg = scanner.nextLine();
pw.println(msg);
pw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (scanner != null) {
scanner.close();
}
if (pw != null) {
pw.close();
}
if (this.socket != null) {
try {
this.socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
/**
* 接受消息的线程
*/
class PUCReceive extends Thread{
private Socket socket = null;
public PUCReceive(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
this.receiveMsg();
}
private void receiveMsg(){
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(this.socket.getInputStream());
byte[] buf = new byte[256];
byte[] byteData = new byte[0];
byte[] headMessage = new byte[4];
int realLength = 0;
while (true) {
while (bis.available() == 0) {Thread.sleep(100);}//wait()
bis.read(headMessage);
//解析数据头,包含数据长度信息
int byteSize = ByteUtil.getInt(headMessage, 0);
for (int i = 0; i < byteSize;) {
realLength = bis.read(buf);
byteData = ByteUtil.byteArrayContact(byteData,buf,realLength);
i += realLength;
}
List<Integer> yieldList = new ArrayList<>();
for (int i = 0; i < byteData.length;) {
yieldList.add(ByteUtil.getInt(byteData,i));
i+=4;
}
byteData = new byte[0];
yieldList.forEach(System.out::println);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
public class PUCClient {
public static void main(String[] args) {
Scanner scanner = null;
ServerSocket serverSocket = null;
Socket socket = null;
try {
scanner = new Scanner(System.in);
System.out.println("请输入: server,<port> 或者: <ip>,<port>");
// String str = scanner.nextLine();
String str = "192.168.1.103,8888";
String[] arr = str.split(",");
if ("server".equals(arr[0])) {
//启动服务器
System.out.println("TCP Server Listen at " + arr[1]);
serverSocket = new ServerSocket(Integer.parseInt(arr[1]));
socket = serverSocket.accept();
System.out.println("连接成功!");
} else {
//启动客户端
socket = new Socket(arr[0],Integer.parseInt(arr[1]));
System.out.println("连接成功!");
}
//启动发送消息的线程
new PUCSend(socket,scanner).start();
//启动接受消息的线程
new PUCReceive(socket).start();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
大道至简,知易行难。从今天开始改变,这是对平庸生活最好的回击。

浙公网安备 33010602011771号