[back-end]/자바-소켓

소켓프로그래밍 - 단방향 소켓 프로그램

broship 2021. 1. 1. 22:53

단방향 소켓 프로그램

- 서버 소캣을 열어놈

- 클라이언트에서 접속 시도

- 접속 성공시 서버에서 "여보세요~" 문자열 클라이언트에 전송

- 클라이언트 접속 해제

 

TCP 서버

package ex01tcp;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
	//전화 받는쪽
	public static void main(String[] args) throws IOException {
		//1024이하의 포트 번호는 고정 포트기 때문에 사용X, 그외 아무 포트 사용 가능
		ServerSocket ss = new ServerSocket(7777); //listen, 해당 포트로 오는 모든 연결을 열어놈
		System.out.println("전화 준비 완료");
		
		while(true) {
			System.out.println("전화 기다리는중...");
			Socket s = ss.accept(); //accept, s에는 전화온 사람의 소켓이 들어있음
			System.out.println(s.getInetAddress()+ "로 부터 전화가 옴");
			
			//byte단위로 보내는 파일 전송
			DataOutputStream dos = new DataOutputStream(s.getOutputStream());
			dos.writeUTF("여보세요~");
			//getOutputStream 상대방쪽으로 보냄
			
			dos.close();
			s.close();
		}

	}

}

 

TCP 클라이언트

package ex01tcp;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class TCPClient {

	public static void main(String[] args) throws UnknownHostException, IOException {
		Socket s = new Socket("127.0.0.1", 7777); //127.0.0.1 이 ip 주소로 7777 포트로 접속
		
		DataInputStream dis = new DataInputStream(s.getInputStream());
		//getInputStream: 상대방으로부터 받음
		System.out.println("상대방이 한말: " + dis.readUTF());
		
		dis.close();
		s.close();
		System.out.println("전화 끊어짐");

	}

}

'[back-end] > 자바-소켓' 카테고리의 다른 글

소켓프로그래밍 - 멀티 유저 채팅 프로그램  (0) 2021.01.02
소켓프로그래밍 - 양방향 소켓  (0) 2021.01.01
program, process, thread  (0) 2020.12.28
소켓 프로그램  (0) 2020.12.24
웹 프로그램  (0) 2020.12.24