When the user presses the Enter key, the current line is sent to the client. The client has two text areas: one for receiving text from the server, and the other for entering text. When the user presses the Enter key, the current line is sent to the server.
when i run the program nothing happen the client and server not sending anything why??can any1 help ?
client.java
package sheet4_q7_client;
import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Sheet4_Q7_Client extends JFrame{
String s="";
/**
* @param args the command line arguments
*/
private JTextArea jtaServer = new JTextArea();
// Text area for displaying client text
private JTextArea jtaClient = new JTextArea();
private PrintWriter output,output1,output2;
public static void main(String[] args) {
new Sheet4_Q7_Client();
}
public Sheet4_Q7_Client() {
// Place text area on the frame
setLayout(new GridLayout(2, 1));
JScrollPane jScrollPane1 = new JScrollPane(jtaServer);
JScrollPane jScrollPane2 = new JScrollPane(jtaClient);
jScrollPane1.setBorder(new TitledBorder("Server"));
jScrollPane2.setBorder(new TitledBorder("Client"));
add(jScrollPane2, BorderLayout.CENTER);
add(jScrollPane1, BorderLayout.CENTER);
jtaServer.setWrapStyleWord(true);
jtaServer.setLineWrap(true);
jtaClient.setWrapStyleWord(true);
jtaClient.setLineWrap(true);
// jtaClient.setEditable(false);
setTitle("Exercise30_12Client");
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // Center the frame
setVisible(true); // It is necessary to show the frame here!
try {
// Create a server socket
Socket connectToServer = new Socket("localhost", 8000);
//output = new
//PrintWriter(connectToServer.getOutputStream());
new SendThread(connectToServer).start();
new ReceiveThread(connectToServer).start();
}
catch(IOException ex) {
System.err.println(ex);
}
jtaServer.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == e.VK_BACK_SLASH) {
s=jtaServer.getText().toString();
}
}
});
}
class SendThread extends Thread {
SendThread(Socket socket) {
// Keep sending to the client
try {
output1 = new PrintWriter(socket.getOutputStream());
output1.write(s);
output1.flush();
}
catch(IOException ex) {
System.err.println(ex);
}
}
}
class ReceiveThread extends Thread {
ReceiveThread(Socket socket) {
// Keep receiving from the client
try {
Scanner input1 = new Scanner(socket.getInputStream());
String s1=input1.nextLine();
jtaServer.setText(s1);
}
catch(IOException ex) {
System.err.println(ex);
}
}
}
}
server.java
package sheet4_q7_server;
import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Sheet4_Q7_Server extends JFrame{
String s="";
/**
* @param args the command line arguments
*/
private JTextArea jtaServer = new JTextArea();
// Text area for displaying client text
private JTextArea jtaClient = new JTextArea();
private PrintWriter output,output1;
public static void main(String[] args) {
new Sheet4_Q7_Server();
}
public Sheet4_Q7_Server() {
// Place text area on the frame
setLayout(new GridLayout(2, 1));
JScrollPane jScrollPane1 = new JScrollPane(jtaServer);
JScrollPane jScrollPane2 = new JScrollPane(jtaClient);
jScrollPane1.setBorder(new TitledBorder("Server"));
jScrollPane2.setBorder(new TitledBorder("Client"));
add(jScrollPane1, BorderLayout.CENTER);
add(jScrollPane2, BorderLayout.CENTER);
jtaServer.setWrapStyleWord(true);
jtaServer.setLineWrap(true);
jtaClient.setWrapStyleWord(true);
jtaClient.setLineWrap(true);
// jtaClient.setEditable(false);
setTitle("Exercise30_12Server");
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // Center the frame
setVisible(true); // It is necessary to show the frame here!
try {
// Create a server socket
ServerSocket serverSocket = new ServerSocket(8000);
// Listen for a new connection request
Socket connectToClient = serverSocket.accept();
output = new
PrintWriter(connectToClient.getOutputStream());
new SendThread(connectToClient).start();
new ReceiveThread(connectToClient).start();
}
catch(IOException ex) {
System.err.println(ex);
}
jtaServer.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == e.VK_ENTER) {
s=jtaServer.getText().toString();
//System.out.print(s);
}
}
});
}
class SendThread extends Thread {
SendThread(Socket socket) {
// Keep sending to the client
try {
output1 = new PrintWriter(socket.getOutputStream());
output1.write(s);
output1.flush();
}
catch(IOException ex) {
System.err.println(ex);
}
}
}
class ReceiveThread extends Thread {
ReceiveThread(Socket socket) {
// Keep receiving from the client
try {
Scanner input1 = new Scanner(socket.getInputStream());
String s1=input1.nextLine();
jtaClient.setText(s1);
}
catch(IOException ex) {
System.err.println(ex);
}
}
}
}
Aucun commentaire:
Enregistrer un commentaire