본문 바로가기

JAVA/기본다지기

JAVA 22일차 필기

모의 소켓 통신


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