-
20일 차 TCP통신삼성SDS_멀티캠퍼스/Java 2015. 10. 6. 17:09반응형
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
/*
Socket객체를 서버의 아이피주소를 지정해서 생성
Socket객체로부터 getOutputStream()을 얻어 write해서 보내고
Socket객체로부터 getInputStream()을 얻어 read해서 읽고
통신한다
*/
public class TCP_Client2 implements Runnable {
Socket socket = null;
Scanner scan = new Scanner(System.in);
String msg = null;
BufferedWriter bw = null;
public TCP_Client2() {
try {
socket = new Socket(InetAddress.getByName("70.12.115.113"), 5000);
bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
while (true) {
msg = scan.nextLine() + "\n";
bw.write(msg);
bw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
/*
ServerSocket 객체를 포트지정해서 생성
ServerSocket 객체를 accept()메소드를 호출(클라이언트의 요청대기)
클라이언트의 요청이 들어와서 연결이 되면
accept()메소드의 반환값으로 Socket객체가 리턴된다.
Socket객체로부터 getOutputStream()을 얻어 write해서 보내고
Socket객체로부터 getInputStream()을 얻어 read해서 읽고
통신한다
*/
public class TCP_Server2 implements Runnable {
ServerSocket serverSocket = null;
Socket socket = null;
public TCP_Server2(ServerSocket socket) {
serverSocket = socket;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
System.out.println("서버 연결중입니다");
socket = serverSocket.accept(); // 여기까지하면 5000번 포트를 접속 (소켓이 연결되면 클라이언트와 서버의 차이가 없어짐)
System.out.println("연결되었습니다");
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (true) {
Date date = new Date();
String str = date + " -- : " + br.readLine() + "\n";
System.out.println(str);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (socket != null)
socket.close();
if (serverSocket != null)
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
public class Test {
public static void main(String[] args) {
try {
ServerSocket socket = new ServerSocket(5000);
Thread t1 = new Thread(new TCP_Client2());
Thread t2 = new Thread(new TCP_Server2(socket));
t1.start();
t2.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
22일 차 SVN (서브버전) (0) 2015.10.08 21일 차 TCP단체 채팅방(서버와 클라이언트) (0) 2015.10.07 19일 차 Socket 통신으로 채팅방 만들기 (0) 2015.10.05 19일 차 소켓 통신 (0) 2015.10.05 18일 차 도서대여 프로그램 완벽한 저장 (0) 2015.10.02