모의 소켓 통신
LAN으로 연결된 통신망에서 서버PC에 접속하기 위한 Client
package com.javalesson.ch21network;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
class ClientSender extends Thread{
String name;
DataOutputStream out;
public ClientSender(Socket socket, String name){
this.name=name;
try {
out = new DataOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run(){
Scanner scan = new Scanner(System.in);
try {
if(out!=null){
out.writeUTF(name);
}
while(out!=null){
out.writeUTF(name+" : "+scan.nextLine());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}//ClientSender end
class ClientReceiver extends Thread{
DataInputStream in;//socket 입력을 가진다.
public ClientReceiver(Socket socket){
try {
in = new DataInputStream(socket.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run(){
try {
while(in!=null){
System.out.println(in.readUTF());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}//ClientReceiver end
public class L01TcpipClient {
public static void main(String[] args) {
Socket socket;
try {
socket = new Socket("IPv4address",5000);
new ClientSender(socket, "접속자명").start();
new ClientReceiver(socket).start();
} catch (IOException e) {
e.printStackTrace();
}
//2개의 thread를 돌린다.
//1-> 서버에 메세지를 보낸다(ClientSender)(서버가 메세지를 받아서 다른 곳으로 보낸다.)
// DataOutputStream, Socket, String name(보내는 사람)
// socket.getOutStream() -> 서버에 메세지를 보낸다.
//2-> 서버에서 보낸 메세지를 받는다(ClientReceiver)
// DataInputStream, Socket
// socket.getInputStream() -> 서버에서 보낸 메세지를 받는다.
}//main end
}//class end
'JAVA > 기본다지기' 카테고리의 다른 글
JAVA 23일차 필기 (0) | 2016.09.08 |
---|---|
JAVA 21일차 필기 (1) | 2016.09.06 |
JAVA 20일차 필기 (1) | 2016.09.05 |
JAVA 19일차 필기 (1) | 2016.09.01 |
JAVA 18일차 필기 (1) | 2016.08.31 |