1.
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
class JEditorPaneFrame extends JFrame implements ActionListener{
private JTextField text;
private JEditorPane edPane;
private JScrollPane scroll;
public JEditorPaneFrame(){
setTitle("JEditorPane");
setSize(700,700);
edPane = new JEditorPane();
scroll = new JScrollPane(edPane);
text = new JTextField(20);
text.addActionListener(this);
add(text,BorderLayout.PAGE_END);
add(scroll, BorderLayout.CENTER);
setVisible(true);
}
public void actionPerformed(ActionEvent event){
try{
URL java = new URL(event.getActionCommand());
edPane.setPage(java);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class JEditorPaneTest {
public static void main(String[] args){
JEditorPaneFrame ep = new JEditorPaneFrame();
}
}
2.
import java.io.*;
import java.net.*;
import java.util.*;
public class Server {
public void send()
{
PrintWriter out = null;
try{
ServerSocket ss=new ServerSocket(8000);
Random R=new Random();
while(true){
Socket socket=ss.accept();
out=new PrintWriter(socket.getOutputStream());
int select=R.nextInt(9);
String[] s={"시간은 금이다.",
"지갑이 가벼우면 마음이 무겁다.",
"내일 지구가 멸망해도 나는 한그루의 사과나무를 심겠다.",
"성공은 1%의 영감과 99%의 노력으로 이루어진다.",
"되는 놈은 되고, 안되는 놈은 안된다.",
"시작이 반이다.",
"안되면 되게하라.",
"유레카!",
"음
"..."};
out.println(s[select]);
out.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args)
{
Server s=new Server();
s.send();
}
}
---------------------------------------------------------------------------------------------
import java.awt.BorderLayout;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class Client extends JFrame implements ActionListener{
JTextArea t_a;
String message;
String texting;
public void receive()
{
try{
Socket socket=new Socket("127.0.0.1",8000);
InputStreamReader sReader=new InputStreamReader(socket.getInputStream());
BufferedReader reader=new BufferedReader(sReader);
message=reader.readLine();
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
Client()
{
texting="";
setTitle("클라이언트 테스트");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t_a=new JTextArea(30,30);
JButton b=new JButton("서버로부터 메시지 수신");
add(t_a,BorderLayout.SOUTH);
add(b,BorderLayout.NORTH);
b.addActionListener(this);
pack();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
receive();
texting+="\n"+message;
t_a.setText("서버로부터 메시지: "+texting);
}
public static void main(String[]args)
{
Client client=new Client();
}
}
TCP를 이용한 서버와 클라이언트 프로_그램이다. 서버는 클라이언트에서 정해준 포트번호로 접
속하여 지속적으로 문자열을 뿌려준다.
import java.io.*;
import java.net.*;
import java.util.*;
public class UDP_Server {
public void send()
{
try{
InetAddress address=InetAddress.getByName("127.0.0.1");
Random R=new Random();
while(true){
DatagramSocket ss=new DatagramSocket();
int select=R.nextInt(9);
String[] s={"시간은 금이다.",
"지갑이 가벼우면 마음이 무겁다.",
"내일 지구가 멸망해도 나는 한그루의 사과나무를 심겠다.",
"성공은 1%의 영감과 99%의 노력으로 이루어진다.",
"되는 놈은 되고, 안되는 놈은 안된다.",
"시작이 반이다.",
"안되면 되게하라.",
"유레카!",
"음
"..."};
byte[] buf=s[select].getBytes();
DatagramPacket packet=new DatagramPacket(buf,buf.length,address,5000);
ss.send(packet);
ss.close();
System.out.println("packet="+packet);
}
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args)
{
UDP_Server s=new UDP_Server();
s.send();
}
}
-------------------------------------------------------------------------------------------------
import java.awt.BorderLayout;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class UDP_Client extends JFrame implements ActionListener{
JTextArea t_a;
String message;
String texting;
public void receiver()
{
try{
byte[] buf=new byte[256];
DatagramSocket socket=new DatagramSocket(5000);
DatagramPacket packet=new DatagramPacket(buf,buf.length);
socket.receive(packet);
System.out.println("client packet="+packet);
message=new String(buf);
socket.close();
}catch(IOException e){
e.printStackTrace();
}
}
UDP_Client()
{
texting="";
setTitle("UDP클라이언트 테스트");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t_a=new JTextArea(30,30);
JButton b=new JButton("서버로부터 메시지 수신");
add(t_a,BorderLayout.SOUTH);
add(b,BorderLayout.NORTH);
b.addActionListener(this);
pack();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
receiver();
texting+="\n"+message;
t_a.setText("서버로부터 메시지: "+texting);
}
public static void main(String[]args)
{
UDP_Client client=new UDP_Client();
}
}
3.
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EchoServer {
protected JTextField textField;
protected JTextArea textArea;
DatagramSocket socket;
DatagramPacket packet;
InetAddress address = null;
final int myPort = 5000;
final int otherPort = 6000;
public EchoServer() throws IOException{
MyFrame f = new MyFrame();
address = InetAddress.getByName("127.0.0.1");
socket = new DatagramSocket(myPort);
}
public void process(){
while(true){
try{
byte[] buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
textArea.append("RECIEVED : " + new String(buf) + "\n");
byte[] buffer = buf;
DatagramPacket packet1;
packet1=new DatagramPacket(buffer,buffer.length, address, otherPort);
socket.send(packet1);
textArea.append("ECHO : "+new String(buf) + "\n");
}catch(IOException ioException){
ioException.printStackTrace();
}
}
}
class MyFrame extends JFrame implements ActionListener{
public MyFrame(){
super("EchoServer");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textField = new JTextField(30);
textField.addActionListener(this);
textArea = new JTextArea(10,30);
textArea.setEditable(false);
add(textField,BorderLayout.PAGE_END);
add(textArea, BorderLayout.CENTER);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent evt){
String s = textField.getText();
byte[] buffer = s.getBytes();
DatagramPacket packet;
packet = new DatagramPacket(buffer, buffer.length, address, otherPort);
try{
socket.send(packet);
}catch(IOException e){
e.printStackTrace();
}
textArea.append("SENT : " + s + "\n");
textField.selectAll(); textArea.setCaretPosition(textArea.getDocument().getLength());
}
}
public static void main(String[] args) throws IOException{
EchoServer m = new EchoServer();
m.process();
}
}
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EchoClient {
protected JTextField textField;
protected JTextArea textArea;
DatagramSocket socket;
DatagramPacket packet;
InetAddress address = null;
final int myPort = 6000;
final int otherPort = 5000;
public EchoClient() throws IOException{
MyFrame f = new MyFrame();
address = InetAddress.getByName("127.0.0.1");
socket = new DatagramSocket(myPort);
}
public void process(){
while(true){
try{
byte[] buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
textArea.append("RECIEVED : " + new String(buf) + "\n");
}catch(IOException ioException){
ioException.printStackTrace();
}
}
}
class MyFrame extends JFrame implements ActionListener{
public MyFrame(){
super("MessengerB");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textField = new JTextField(30);
textField.addActionListener(this);
textArea = new JTextArea(10,30);
textArea.setEditable(false);
add(textField,BorderLayout.PAGE_END);
add(textArea, BorderLayout.CENTER);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent evt){
String s = textField.getText();
byte[] buffer = s.getBytes();
DatagramPacket packet;
packet = new DatagramPacket(buffer,buffer.length,address, otherPort);
try{
socket.send(packet);
}catch(IOException e){
e.printStackTrace();
}
textArea.append("SENT : " + s + "\n");
textField.selectAll();
textArea.setCaretPosition(textArea.getDocument().getLength());
}
}
public static void main(String[] args) throws IOException{
EchoClient m = new EchoClient();
m.process();
}
}
'솔루션모음 > 파워자바 프로그래밍' 카테고리의 다른 글
[파워자바] 27장 프로그래밍 솔루션 답지 (0) | 2023.02.16 |
---|---|
[파워자바] 26장 프로그래밍 솔루션 답지 (0) | 2023.02.16 |
[파워자바] 24장 프로그래밍 솔루션 답지 (0) | 2023.02.16 |
[파워자바] 23장 프로그래밍 솔루션 답지 (0) | 2023.02.16 |
[파워자바] 22장 프로그래밍 솔루션 답지 (0) | 2023.02.16 |
댓글