Java 채팅 소스 예제 #1

Programming/JAVA,JSP 2016. 2. 4. 14:28 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client {
	public static void main(String[] args) {
		JTextField textField;
		JTextArea textArea;
		PrintWriter out;
		try {
			Socket s = new Socket("118.46.60.67", 5555);
			out = new PrintWriter(s.getOutputStream(), true);
			JFrame f = new JFrame("채팅");
			f.setSize(600, 400);
			f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
			textArea = new JTextArea();
			textField = new JTextField(10);
			textField.addActionListener(
					new ActionListener() {
						public void actionPerformed(ActionEvent e) {
						out.println(textField.getText());
						}
					}
			);
			f.add(textField, BorderLayout.SOUTH);
			f.add(textArea, BorderLayout.CENTER);
			f.setVisible(true);
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

ImageFrameTest  (0) 2016.02.05
Java 채팅 프로그램  (0) 2016.02.04
Java CardLayout Test  (0) 2016.01.26
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
Java Server/Client Code  (2) 2015.11.12

Android Studio 1.4 and OpenCV 3.0.0 연동

Programming/Android 2015. 12. 19. 02:39 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android Studio 1.4 and OpenCV 3.0.0 연동


Android Studio 1.4


https://dl.google.com/dl/android/studio/install/1.4.0.10/android-studio-bundle-141.2288178-windows.exe


OpenCV_Java_AndroidStudio

https://github.com/quanhua92/OpenCV_Java_AndroidStudio



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

지역 : 천안, 아산, 청주


종목 : 프로그래밍, 정보올림피아드, CCNA, CCNP


경력 : 지도학생) 2013 초등부 정보올림피아드 전국대회 은상 수상

         전) 서울 서울특별시립종합직업전문학교 외부강사

         전) 천안 그린컴퓨터학원 프로그래밍 강사


         현) 청주 그린컴퓨터학원 프로그래밍 강사

         현) 아산소재 대학교 시간강사

         현) 천안소재 대학교 시간강사

         현) 대학원 박사과정 재학중




자세한 문의는


tansanc23@gmail.com 으로 문의해 주세요.

공일공-구구육이-일사일칠



Java Server/Client Code

Programming/JAVA,JSP 2015. 11. 12. 13:23 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Client.java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;


class MyFrame extends JFrame {
	public static JTextArea textArea;
	JTextField textField;
	PrintWriter out;
	
	public MyFrame() {
		textArea = new JTextArea();
		textField = new JTextField();
		add(BorderLayout.CENTER, textArea);
		add(BorderLayout.SOUTH, textField);
		textField.addActionListener(new FieldListener());
		setSize(300,200);
		setTitle("채팅프로그램 Client");
		setVisible(true);
		// GUI를 설계한다.
	}
	class FieldListener implements ActionListener
	{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			out.println(textField.getText());
			textField.setText("");
			// 메세지 보내기
		}		
	}
}

class SendThread extends Thread {
	PrintWriter out;
	public SendThread(PrintWriter out)
	{
		this.out = out;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		super.run();
	}
}

class RecvThread extends Thread {
	BufferedReader in;
	public RecvThread(BufferedReader in)
	{
		this.in = in;
	}
	@Override
	public void run() {
		String temp;
		try {
			while ((temp = in.readLine()) != null) {
				
				MyFrame.textArea.setText(
						MyFrame.textArea.getText()
						+ "\n" + temp);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

class ClientModule {
	MyFrame mFrame;
	SendThread mSendThread;
	RecvThread mRecvThread;
	Socket s;

	// 서버에 패킷을 보내는 Thread
	// 서버로부터 패킷을 받는 Thread
	public ClientModule() // 준비
	{

		try {
			s = new Socket("192.168.10.151", 33333);
			PrintWriter out = new PrintWriter(s.getOutputStream(), true);
			BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
			mFrame = new MyFrame(); // GUI 객체
			mFrame.out = out;
			mSendThread = new SendThread(out);
			mRecvThread = new RecvThread(in);			
		}  catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	void start() // 시작
	{
		mSendThread.start();
		mRecvThread.start();
	}
}

public class Client {
	public static void main(String[] args) {
		ClientModule cm = new ClientModule();
		// 초기화 작업
		cm.start();
		// Thread.start();
	}
}

Server.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

class PerClientThread extends Thread {
	Socket s;
	static ArrayList socketArray = new  ArrayList();

	@Override
	public void run() {
		// TODO Auto-generated method stub

		socketArray.add(s);
		
		BufferedReader br;
		try {
			br = new BufferedReader(new InputStreamReader(s.getInputStream()));
			String temp;
			while ((temp = br.readLine()) != null) {
				System.out.print(s.getInetAddress() + " : ");
				System.out.println(temp);
				for( int i = 0 ; i < socketArray.size() ; i++)
				{
					PrintWriter os = 
							new PrintWriter
							(socketArray.get(i).getOutputStream()
									,true);
					os.print(s.getInetAddress() + " : ");
					os.println(temp);
				}
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		super.run();
	}
}

public class Test {
	public static void main(String[] args) throws Exception {

		System.out.println("Server Side");
		ServerSocket ss = new ServerSocket(33333);
		Socket s;
		while (true) {
			s = ss.accept();
			PerClientThread pct = new PerClientThread();
			pct.s = s;
			pct.start();
		}

	}
}

'Programming > JAVA,JSP' 카테고리의 다른 글

Java CardLayout Test  (0) 2016.01.26
정올 알고리즘 2247 도서관 문제  (0) 2015.11.26
[Spring] 한글 인코딩 설정  (0) 2015.10.29
mysql table datetime tip  (0) 2014.10.20
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12

Java Chatting Server, Client

Programming/JAVA,JSP 2014. 7. 12. 16:18 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

 

 

 

JavaChattingClient.zip

 

JavaChattingServer.zip

 

'Programming > JAVA,JSP' 카테고리의 다른 글

mysql table datetime tip  (0) 2014.10.20
JSP, MYSQL, ECLIPSE 연동하기  (0) 2014.10.12
JScrollPane , ScrollPane 차이점  (0) 2014.07.12
Java ScrollPane 활용  (0) 2014.07.12
java  (0) 2014.07.12

Java ScrollPane 활용

Programming/JAVA,JSP 2014. 7. 12. 16:06 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java TextArea 에 ScrollPane 장착하기.

 

  JScrollPane sp = new JScrollPane();
  ta = new JTextArea();
  sp.add(ta);

 

JScrollPane 에

 

Scroll 을 달고 싶은 컴포넌트를

 

add

 

한 후

 

Scroll 을 panel 이나 frame 에 add 하면 됩니다.

'Programming > JAVA,JSP' 카테고리의 다른 글

Java Chatting Server, Client  (0) 2014.07.12
JScrollPane , ScrollPane 차이점  (0) 2014.07.12
java  (0) 2014.07.12
JAVA 채팅 소스 -1 Client 쪽  (0) 2014.07.12
Java 선택 정렬 알고리즘 구현  (0) 2014.06.14

JAVA 채팅 소스 -1 Client 쪽

Programming/JAVA,JSP 2014. 7. 12. 14:50 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

import java.util.Scanner;

 

class RecvThread extends Thread {

     Socket s;

 

     public RecvThread(Socket s) {

          this.s = s;

     }

 

     @Override

     public void run() {

          // 받는 부분

          BufferedReader is;

          try {

              is = new BufferedReader(new InputStreamReader(s.getInputStream()));

              String recvMsg;

              while ((recvMsg = is.readLine()) != null) {

                   System.out.println(recvMsg);

              }

          } catch (IOException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

          }

     }

}

 

class SendThread extends Thread {

     Socket s;

 

     public SendThread(Socket s) {

          this.s = s;

     }

 

     @Override

     public void run() {

          PrintWriter os;

          try {

              os = new PrintWriter(s.getOutputStream(), true);

              // 보내는 부분

              Scanner sc = new Scanner(System.in);

              while (true) {

                   String msg = sc.next();

                   os.println(msg);

              }

          } catch (IOException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

          }

     }

 

}

 

public class ClientTest {

     public static void main(String[] args) {

          try {

              Socket s = new Socket("115.20.247.142", 4000);

              SendThread st = new SendThread(s);

              RecvThread rt = new RecvThread(s);

          } catch (UnknownHostException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

          } catch (IOException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

          }

     }

}

 

 

'Programming > JAVA,JSP' 카테고리의 다른 글

Java ScrollPane 활용  (0) 2014.07.12
java  (0) 2014.07.12
Java 선택 정렬 알고리즘 구현  (0) 2014.06.14
String to int, int to String  (0) 2014.06.07
이클립스 라인넘버 표시  (1) 2014.03.07

Java 선택 정렬 알고리즘 구현

Programming/JAVA,JSP 2014. 6. 14. 11:58 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.util.Scanner;

 

public class Exercise {

     public static void main(String[] arg) {

          int[] arr = new int[10];

          Scanner sc = new Scanner(System.in);

          for (int i = 0; i < 10; i++) {

              arr[i] = sc.nextInt();

          }

          // 입력

          Sort(arr);

          // 출력

          for (int i = 0; i < 10; i++) {

              System.out.println(arr[i]);

          }

     }

 

     public static void Sort(int[] a) {

          int n = 10;

          int temp;

          int j;

          boolean move;

          for( int i = 1; i < n ; i = i + 1)

          {

              temp = a[i];

              j = i;

              if( a[j-1] > temp )

              {

                   move = true;                

              }

              else

              {

                   move = false;

              }

              while(move)

              {

                   a[j] = a[j-1];

                   j = j - 1 ;

                   if( j > 0 && a[j-1] > temp)

                   {

                        move = true;

                   }

                   else

                   {

                        move = false;

                   }

              }

              a[j] = temp;

          }

         

     }

}

 

 

'Programming > JAVA,JSP' 카테고리의 다른 글

java  (0) 2014.07.12
JAVA 채팅 소스 -1 Client 쪽  (0) 2014.07.12
String to int, int to String  (0) 2014.06.07
이클립스 라인넘버 표시  (1) 2014.03.07
JAVA 채팅 프로그램 export zip  (1) 2014.01.24

Android APK 추출 툴

Programming/Android 2014. 3. 7. 22:06 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android APK 추출 툴



JAVA 공던지기 게임 완성

Programming/JAVA,JSP 2014. 1. 16. 17:30 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package com.tistory.tansanc;

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

 

import javax.swing.JButton;

import javax.swing.JComponent;

import javax.swing.JFrame;

 

// 그림이 그려지는 컴포넌트를 정의

class MyComponent extends JComponent {

 

   public int x = 30;

   public int y = 420;

 

   public boolean wire = true;

 

   public void paint(Graphics g) {

       g.setColor(new Color(167, 114, 48));

       g.drawLine(100, 500, 100, 450);

       g.drawLine(100, 450, 75, 400);

       g.drawLine(100, 450, 125, 400);

 

       if (wire) {

          g.setColor(new Color(0, 255, 0));

          g.drawLine(75, 400, x + 25, y + 25);

         g.drawLine(125, 400, x + 25, y + 25);

       }

       g.setColor(new Color(255, 0, 0));

       g.fillOval(x, y, 50, 50);

 

       g.setColor(new Color(0, 0, 255));

       g.drawOval(400, 150, 100, 50);

       // x : 400 ~ 500

       // y : 150 ~ 200

       g.drawLine(500, 150, 500, 600);

 

       g.setFont(new Font("Monospaced", Font.BOLD, 20));

      g.drawString("점수 : " + point, 10, 100);

       if (x + 25 > 400 && x + 25 < 500 && y + 25 > 150 && y + 25 < 200) {

          pointBool = true;

       } else {

          if (pointBool == true) {

             point++;

 

          }

          pointBool = false;

       }

       Image image;

       try {

          //image = ImageIO.read(this.getClass().getResource("angry.png"));

          image= Toolkit.getDefaultToolkit().getImage("angry.png");

          int w = image.getWidth(null);

          int h = image.getHeight(null);

          g.drawImage(image, x, y, 50, 50, null);

       } catch (Exception e) {

          // TODO Auto-generated catch block

          e.printStackTrace();

       }

 

      

   }

 

   boolean pointBool = false;

   int point = 0;

}

 

// 프레임 컴포넌트를 상속받아서 정의

public class StarFrame extends JFrame implements ActionListener,

       MouseMotionListener, MouseListener {

   public static final int WIDTH = 800;

   public static final int HEIGHT = 600;

 

   JButton next = new JButton("Next");

   MyComponent c;

 

   public StarFrame() {

       setTitle("MyFrame");

       setSize(WIDTH, HEIGHT);

   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       setVisible(true);

 

       // MyComponent 객체 생성하여 프레임에 추가

       c = new MyComponent();

       next.addActionListener(this);

 

       add(c, BorderLayout.CENTER);

       add(next, BorderLayout.SOUTH);

 

       addMouseMotionListener(this);

       addMouseListener(this);

   }

 

   public static void main(String[] args) {

       StarFrame frame = new StarFrame();

   }

 

   @Override

   public void actionPerformed(ActionEvent arg0) {

       // TODO Auto-generated method stub

   }

 

   @Override

   public void mouseDragged(MouseEvent arg0) {

       // TODO Auto-generated method stub

       if (arg0.getX() < 140 && arg0.getY() > 400) {

 

          c.x = arg0.getX() - 30;

          c.y = arg0.getY() - 60;

          c.repaint();

       }

 

   }

 

   @Override

   public void mouseMoved(MouseEvent arg0) {

       // TODO Auto-generated method stub

 

   }

 

   @Override

   public void mouseClicked(MouseEvent arg0) {

       // TODO Auto-generated method stub

 

   }

 

   @Override

   public void mouseEntered(MouseEvent arg0) {

       // TODO Auto-generated method stub

 

   }

 

   @Override

   public void mouseExited(MouseEvent arg0) {

       // TODO Auto-generated method stub

 

   }

 

   boolean mouse = false;

   int startX;

   int startY;

   int endX;

   int endY;

 

   @Override

   public void mousePressed(MouseEvent arg0) {

       // TODO Auto-generated method stub

       if (arg0.getX() < 140 && arg0.getY() > 400) {

          if (mouse == false) {

 

             c.wire = true;

             c.x = arg0.getX() - 30;

             c.y = arg0.getY() - 60;

             c.repaint();

             startX = arg0.getX();

             startY = arg0.getY();

             mouse = true;

 

          }

       }

   }

 

   @Override

   public void mouseReleased(MouseEvent arg0) {

       // TODO Auto-generated method stub

 

       if (mouse == true) {

          endX = arg0.getX();

          endY = arg0.getY();

          System.out.println("power X : " + (startX - endX));

          System.out.println("power Y : " + (startY - endY));

          mouse = false;

          c.wire = false;

          if (ft != null) {

             ft.stop();

          }

          ft = new FlyThread((startX - endX), (startY - endY));

          ft.start();

       }

   }

 

   FlyThread ft;

 

   class FlyThread extends Thread {

       int powerX;

       int powerY;

 

       FlyThread(int powerX, int powerY) {

          this.powerX = powerX;

          this.powerY = powerY;

       }

 

       @Override

       public void run() {

          while (true) {

             if (c.x > 800 || c.x < -50) {

                 break;

             }

             if (c.y > 600 || c.y < -50) {

                 break;

             }

             c.x += powerX / 10;

             c.y += powerY / 10;

             powerY += 1;

             try {

                 sleep(10);

             } catch (InterruptedException e) {

                 // TODO Auto-generated catch block

                 e.printStackTrace();

             }

             c.repaint();

 

          }

       }

   }

 

}

 

 

'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA FIle 실습 #1  (0) 2014.01.17
JAVA File 실습  (0) 2014.01.17
JAVA 공던지기 게임  (0) 2014.01.16
JAVA 가계부 #2  (0) 2014.01.14
JAVA 가계부  (0) 2014.01.14