1. 자바 프로젝트 생성

2. 라이브러리세팅 build.gradle
compileOnly("org.projectlombok:lombok:1.18.42")
annotationProcessor("org.projectlombok:lombok:1.18.42")
implementation("com.google.code.gson:gson:2.13.1")
implementation("mysql:mysql-connector-java:8.0.33")
3. 디비 연결
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
// 책임 : 데이터베이스 연결 소켓을 리턴함
public static Connection getConnection() {
String url = "jdbc:mysql://localhost:3306/store";
String username = "root";
String password = "bitc5600!";
try {
// new 클래스명();
Class.forName("com.mysql.cj.jdbc.Driver");
// conn = 프로토콜이 적용된 소켓
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("성공");
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
4. 뼈대코드 작성
package com.mtcoding.ex04;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer2 {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(20000);
Socket socket = ss.accept();
InputStream in = socket.getInputStream();
InputStreamReader ir = new InputStreamReader(in);
BufferedReader br = new BufferedReader(ir);
while(true){
String line = br.readLine(); // 엔터키까지 읽기
// 홍길동:안녕
System.out.println("[server] "+line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package client;
import java.io.*;
import java.net.Socket;
public class MyClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 20000);
InputStream keyStream = System.in;
InputStreamReader keyReader = new InputStreamReader(keyStream);
BufferedReader keyBuf = new BufferedReader(keyReader);
OutputStream out = socket.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(out);
BufferedWriter bw = new BufferedWriter(ow);
while(true){
String keyboardData = keyBuf.readLine();
bw.write(keyboardData);
bw.write("\\n");
bw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}