스포츠마케터의 초보 개발자 도전기
JAVA study 21 본문
Socket 1)
client
package ex6_image;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class Ex_Image {
public static void main(String[] args) {
Frame f = new Frame();
f.setLayout(null);
f.setBounds(500, 200, 1280, 1280);
//그림을 프레임 바탕으로
ImageIcon img = new ImageIcon("lion.jpg");
JLabel j1 = new JLabel(img);
j1.setBounds(0, 30, 1280, 1280);
f.add(j1); //배경을 제일 마지막에 add를 해야 함
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}//main
}
--
server
package ex1_socket;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer extends Thread{
//서버 생성을 위한 클래스
ServerSocket ss;
public MyServer() {
try {
//서버를 생성할때, 클라이언트가 접속할 포트를 지정
ss = new ServerSocket(5000);
System.out.println("서버완료");
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
while(true) {
//언제 접속할지 모르는 클라이언트들에 대응하기 위해
//무한반복 속에서 접속자를 기다린다
//클라이언트 객체
try {
//접속자를 받아서 Socket객체에 저장
Socket s = ss.accept();
//방금 접속한 클라이언트(s)의 ip를 가지고 와보자
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip + "님 다녀감");
} catch (IOException e) {
e.printStackTrace();
}
}//while
}
}
--
serverMain
package ex1_socket;
public class ServerMain {
public static void main(String[] args) {
//서버 실행 및 클라이언트 접속 대기
MyServer ms = new MyServer();
ms.start();
}//main
}
Socket 2)
client
package ex2_socket;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class MyClient {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
String msg = sc.nextLine(); //공백포함 장문 받을 수 있음
if(msg != null && msg.trim().length() > 0) {
Socket s = null;
try {
s = new Socket("192.168.0.11", 5000); //서버접속
//msg를 서버에게 전달하기 위한 스트림
PrintWriter out = new PrintWriter(s.getOutputStream());
//서버에게 문자열 전달
out.write(msg);
out.close();
s.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}//main
}
--
server
package ex2_socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer extends Thread {
ServerSocket ss;
public MyServer() {
try {
ss = new ServerSocket(5000);
System.out.println("서버 시작!");
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void run() {
while(true) {
try {
//접속한 클라이언트의 정보를 받음
Socket s = ss.accept();
//접속한 클라이언트로부터 메시지를 받는다
BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
String message = reader.readLine();
System.out.println(message);
} catch (Exception e) {
// TODO: handle exception
}
}//while
}
}
--
serverMain
package ex2_socket;
public class ServerMain {
public static void main(String[] args) {
// 서버열기
MyServer ms = new MyServer();
ms.start();
}// main
}
'develop > JAVA' 카테고리의 다른 글
JAVA study 22 (0) | 2024.05.09 |
---|---|
JAVA study 20 (0) | 2024.05.09 |
JAVA study 19 (0) | 2024.03.25 |
JAVA study 18 (0) | 2024.03.21 |
JAVA study 17 (0) | 2024.03.20 |