자바 소켓 채 팅 프로 그래 밍
server
package com.socket;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
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.ServerSocket;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
public class SocketServer{
private PrintWriter pw;
private JFrame frame;
private JPanel pane_buttom;
private JSplitPane pane_center;
// , ,
private JScrollPane pane_showWindow;
private JScrollPane pane_inputWindow;
private JTextArea area_showWindow;
private JTextArea area_inputWindow;
private JButton btn_send;
private Dimension dimension;// area_showWindow
//
public SocketServer() {
frame = new JFrame();
pane_buttom = new JPanel();
pane_showWindow = new JScrollPane();
pane_inputWindow = new JScrollPane();
area_showWindow = new JTextArea();
area_inputWindow = new JTextArea();
pane_center = new JSplitPane(JSplitPane.VERTICAL_SPLIT, false, pane_showWindow, pane_inputWindow);
btn_send = new JButton(" ");
dimension = new Dimension(50, 300);
}
//
public void showFrame(){
initFrame();
initChatTextArea();
initButton();
btn_send();
socket();
}
//
public void initFrame(){
frame.setTitle(" ");
int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setBounds(width / 2, height / 2, 400, 450);
frame.setVisible(true);
}
//
private void initChatTextArea(){
//
pane_showWindow.getViewport().add(area_showWindow);
pane_inputWindow.getViewport().add(area_inputWindow);
//
area_showWindow.setEditable(false);
//
pane_showWindow.setMinimumSize(dimension);
frame.add(pane_center, BorderLayout.CENTER);
}
// ,
public void initButton(){
pane_buttom.add(btn_send);
frame.add(pane_buttom, BorderLayout.SOUTH);
}
private void btn_send(){
btn_send.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String info = area_inputWindow.getText();
area_showWindow.append(" :"+info+"\r
");
pw.println(info);
area_inputWindow.setText("");
}
});
}
private void socket(){
ServerSocket ss;
try {
ss = new ServerSocket(9988);
//
Socket s=ss.accept();
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
//PrintWriter socket socket OutputStream
pw=new PrintWriter(s.getOutputStream(),true);
//
while(true) {
//
String info=br.readLine();
//
area_showWindow.append(" :"+info+"\r
");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SocketServer chat = new SocketServer();
chat.showFrame();
}
}
client
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
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.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
public class Test {
private PrintWriter pw;
private JFrame frame;
private JPanel pane_buttom;
private JSplitPane pane_center;
// , ,
private JScrollPane pane_showWindow;
private JScrollPane pane_inputWindow;
private JTextArea area_showWindow;
private JTextArea area_inputWindow;
private JButton btn_send;
private Dimension dimension;// area_showWindow
//
public Test() {
frame = new JFrame();
pane_buttom = new JPanel();
pane_showWindow = new JScrollPane();
pane_inputWindow = new JScrollPane();
area_showWindow = new JTextArea();
area_inputWindow = new JTextArea();
pane_center = new JSplitPane(JSplitPane.VERTICAL_SPLIT, false,
pane_showWindow, pane_inputWindow);
btn_send = new JButton(" ");
dimension = new Dimension(50, 300);
}
//
public void showFrame() {
initFrame();
initChatTextArea();
initButton();
btn_send();
socket();
}
//
public void initFrame() {
frame.setTitle(" ");
int width = (int) Toolkit.getDefaultToolkit().getScreenSize()
.getWidth();
int height = (int) Toolkit.getDefaultToolkit().getScreenSize()
.getHeight();
frame.setBounds(width / 2, height / 2, 400, 450);
frame.setVisible(true);
}
//
private void initChatTextArea() {
//
pane_showWindow.getViewport().add(area_showWindow);
pane_inputWindow.getViewport().add(area_inputWindow);
//
area_showWindow.setEditable(false);
//
pane_showWindow.setMinimumSize(dimension);
frame.add(pane_center, BorderLayout.CENTER);
}
// ,
public void initButton() {
pane_buttom.add(btn_send);
frame.add(pane_buttom, BorderLayout.SOUTH);
}
private void btn_send() {
btn_send.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String info = area_inputWindow.getText();
area_showWindow.append(" : " + info + "\r
");
pw.println(info);
area_inputWindow.setText("");
}
});
}
//
@SuppressWarnings("all")
private void socket() {
try {
Socket socket = new Socket("127.0.0.1", 9988);
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferedReader br = new BufferedReader(isr);
//PrintWriter socket
pw = new PrintWriter(socket.getOutputStream(), true);
while (true) {
//
String info = br.readLine();
area_showWindow.append(" : " + info + "\r
");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test chat = new Test();
chat.showFrame();
}
}
2. UDP 통신
server
package com.socket;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class SocketServer {
public static void main(String[] args) {
//TCP
// ServerSocket serverSocket = null ;
// try {
// serverSocket = new ServerSocket(3000);
// Socket socket = serverSocket.accept();
// InputStream inputStream = socket.getInputStream();
// byte[] byt = new byte[1024];
// int length = 0;
// //
// while ((length = inputStream.read(byt)) != -1) {
// System.out.println(new String(byt,0,length));
// }
// } catch (Exception e) {
// }
//UDP
try {
DatagramSocket serverSocket = new DatagramSocket(3000);
byte[] byt = new byte[1024];
DatagramPacket packet = new DatagramPacket(byt, byt.length);
serverSocket.receive(packet);
System.out.println(new String(packet.getData()));
serverSocket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
client
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Test {
public static void main(String[] args) {
// Socket socket = null ;
// try {
// socket = new Socket("192.168.1.192", 3000);
// OutputStream outputStream = socket.getOutputStream();
// InputStream inputStream = new FileInputStream("D:123.txt");
// byte[] byt = new byte[1024];
// int length = 0;
// //
// while ((length = inputStream.read(byt)) != -1) {
// outputStream.write(byt,0,length);
// }
// inputStream.close();
// } catch (Exception e) {
// }
try {
DatagramSocket socketClient = new DatagramSocket(3001);
InetAddress address = InetAddress.getByName("192.168.1.192");
byte[] content = "Just test".getBytes();
DatagramPacket packet = new DatagramPacket(content, content.length,address,3000);
socketClient.send(packet);
socketClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3. 수다
server
package com.socket;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author:
* @TODO:Socket
*/
public class SocketServer {
public static void main(String[] args) {
// TCP
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(3000);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] byt = new byte[1024];
int length = 0;
//
while ((length = inputStream.read(byt)) != -1) {
System.out.println(new String(byt, 0, length));
}
} catch (Exception e) {
}
// UDP
// try {
// DatagramSocket serverSocket = new DatagramSocket(3000);
// byte[] byt = new byte[1024];
// DatagramPacket packet = new DatagramPacket(byt, byt.length);
// serverSocket.receive(packet);
// System.out.println(new String(packet.getData()));
// serverSocket.close();
// } catch (SocketException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
}
}
client
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Socket socket = null;
InputStream inputStream = null;
Scanner scanner = new Scanner(System.in);
String content = "";
try {
socket = new Socket("192.168.1.192", 3000);
while (!(content = scanner.nextLine()).equals("exit")) {
OutputStream outputStream = socket.getOutputStream();
inputStream = new ByteArrayInputStream(content.getBytes());
byte[] byt = new byte[1024];
int length = 0;
//
while ((length = inputStream.read(byt)) != -1) {
outputStream.write(byt, 0, length);
}
}
scanner.close();
inputStream.close();
} catch (Exception e) {
}
// try {
// DatagramSocket socketClient = new DatagramSocket(3001);
// InetAddress address = InetAddress.getByName("192.168.1.192");
// byte[] content = "Just test".getBytes();
// DatagramPacket packet = new DatagramPacket(content,
// content.length,address,3000);
// socketClient.send(packet);
// socketClient.close();
// } catch (Exception e) {
// e.printStackTrace();
// }
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.