본문 바로가기

IT일반과목/java

네트워크 수업2



=================================================================

서버 

package kh.java.tcp.model;


import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;


public class TcpServer {

Scanner sc = new Scanner(System.in);

public void main() {

//서버소켓의 이름이 따로있다.

ServerSocket ss = null;

try {

ss=new ServerSocket(7777);//서버소켓 오픈정도가 끝

System.out.println(getTime()+"서버가준비되었습니다.포트가열렸다");

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

// while(true) {

System.out.println(getTime()+"연결요청기다리는중....");

try {

Socket so = ss.accept();//얘가 실제로 연결을 기다리는 중이다.

System.out.println(getTime()+so.getInetAddress()+"로부터 접속성공");//요청들어온 IP 갖고온다. 



//

//while(true) {

InputStream in = so.getInputStream();

DataInputStream dis = new DataInputStream(in);



OutputStream out = so.getOutputStream();//만들어진 소켓의 아웃풋스트림넣겠다.

DataOutputStream dos = new DataOutputStream(out);

//System.out.println("준호형으로부터 받은 메세지 : "+dis.readUTF());

dos.writeUTF("접속성공");

while(true) {


in = so.getInputStream();

dis = new DataInputStream(in);


out = so.getOutputStream();//만들어진 소켓의 아웃풋스트림넣겠다.

dos = new DataOutputStream(out);


String a=dis.readUTF();

System.out.println("상대방으로부터 받은 메세지 : "+a);

//String a=dis.readUTF();

if(a.equals("exit")) {

break;

}


System.out.print("내가 입력한거 : ");

String text=sc.nextLine();

dos.writeUTF(text);


System.out.println(getTime()+"데이터전송완료");


if(text.equals("exit")) {

break;


}

}

dos.close();

dis.close();

so.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}//

}

//}



static String getTime() {//메소드 끝나고 안사라진다. static일경우에

SimpleDateFormat f = new SimpleDateFormat("[hh:mm:ss]");

return f.format(new Date());

}




}


------------------------------------------------------------------------------------------
package kh.java.tcp.model;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class TcpClient {
Scanner sc = new Scanner(System.in);
public void main() {
try {
System.out.print("서버 IP입력 : ");
//String serverIP = sc.next();
String serverIp = "localhost";
System.out.println("서버에 연결중입니다....."+serverIp);
//소켓생성
Socket so = new Socket(serverIp, 7777);
//서버에서 메세지 받아야 한다.
InputStream in = so.getInputStream();
DataInputStream dis = new DataInputStream(in);
System.out.println("종규받은것 "+dis.readUTF());
//
OutputStream out = so.getOutputStream();//만들어진 소켓의 아웃풋스트림넣겠다.
DataOutputStream dos = new DataOutputStream(out);
while(true) {
System.out.print("내가 입력한거 : ");
String text=sc.nextLine();
dos.writeUTF(text);
if(text.equals("exit")) {
break;
}
String a=dis.readUTF();
System.out.println("나나 받은 메세지 : "+a);
//String a=dis.readUTF();
if(a.equals("exit")) {
break;
}
}
System.out.println("연결종료합니다.");
dis.close();
so.close();
}catch(Exception e) {
}
}
}

------------------------------------------------------------------------------------------

package kh.java.tcp.run;


import kh.java.tcp.model.TcpClient;


public class ClRun {

public static void main(String[] args) {

TcpClient tc = new TcpClient();

tc.main();

}

}


------------------------------------------------------------------------------------------
package kh.java.tcp.run;

import kh.java.tcp.model.TcpServer;

public class SeRun {
public static void main(String[] args) {
TcpServer ts = new TcpServer();
ts.main();
}
}


'IT일반과목 > java' 카테고리의 다른 글

쓰레드1 (학원수업)  (0) 2018.08.10
네트워크 수업3 (야구게임) (과제)  (0) 2018.08.09
네트워크 수업1  (0) 2018.08.09
네트워크 기초 (집공부)  (0) 2018.08.08
직렬화 역직렬화 (집공부)  (0) 2018.08.08