728x90
반응형
서버 코드
package networkEx;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerEx {
public static void main(String[] args) {
try {
ServerSocket ss= new ServerSocket(8888);
Socket server=ss.accept();
InputStream in =server.getInputStream();
OutputStream out = server.getOutputStream();
byte[] arr=new byte[100];
in.read( arr);
System.out.println(new String(arr));
String str="server~";
out.write(str.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
서버는 소켓을 생성한다.
클라이언트
package networkEx;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientEx {
public static void main(String[] args) {
Socket client=null;
try {
client=new Socket("localhost",8888);
OutputStream os=client.getOutputStream();
InputStream is=client.getInputStream();
String str="client";
os.write(str.getBytes());
byte[] arr=new byte[100];
is.read(arr);
System.out.println(new String(arr));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
이 두 파일을 컴파일 한 후
서버프로그램을 실행시키면 클라이언트가 연결될때까지 기다리고 있는다.
새로운 창을 하나 더 켜서 클라이언트를 실행시키면
서버는 클라이언트로부터 "client" 라는 메세지를 받아 출력하고
클라이언트는 서버로부터 "server~"라는 메세지를 받아 출력한다.
응용해서 보낼 메세지를 입력하고 받을수도 있다.
더보기
그냥 str을 scanner를 이용하여 nextLine()으로 받아 사용함.
728x90
반응형
'2022-2 > 자바' 카테고리의 다른 글
[자바] 스레드와 멀티태스킹 (0) | 2022.12.18 |
---|---|
[자바] 제네릭과 컬렉션 (0) | 2022.12.18 |
[자바] ArrayList<클래스> 형의 정렬방법 (0) | 2022.12.12 |
[자바] 멀티스레드, synchronized (0) | 2022.12.01 |
[자바] Vector (0) | 2022.12.01 |
댓글