client:importjava.awt.EventQueue;importjava.awt.Toolkit;importjava.io.*;importjava.net.*;importjavax.swing.*;importjava.awt.Event;importjava.awt.event.ActionEvent;importj...
client:
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Client
{
public static void main(String[] args) throws IOException
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
SocketFrame frame = new SocketFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
);
}
}
class SocketFrame extends JFrame
{
Socket socket = null;
OutputStream os = null;
public SocketFrame()
{
setSize(300, 300);
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - 300)/2, (Toolkit.getDefaultToolkit().getScreenSize().height - 300)/2);
JPanel panel = new JPanel();
JButton btn = new JButton("Connect");
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
socket = new Socket("58.63.67.59", 9999);
String str = "try to connect to server...";
os = socket.getOutputStream();
os.write(str.getBytes());
os.flush();
JOptionPane.showMessageDialog(SocketFrame.this, "send request to server...", null ,JOptionPane.INFORMATION_MESSAGE);
}
catch (UnknownHostException e1)
{
JOptionPane.showMessageDialog(SocketFrame.this, "UnknownHostException", null ,JOptionPane.INFORMATION_MESSAGE);
}
catch (IOException e1)
{
JOptionPane.showMessageDialog(SocketFrame.this, "IOException", null ,JOptionPane.INFORMATION_MESSAGE);
}
}
}
);
panel.add(btn);
add(panel);
}
}
server:
package socketTest;
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args) throws IOException
{
ServerSocket serverSocket = null;
Socket clientSocket = null;
InputStream is = null;
OutputStream os = null;
BufferedReader bd = null;
byte[] b;
int byteAvailable;
try
{
serverSocket = new ServerSocket(9999);
}
catch (IOException e)
{
System.out.println("cannot listen on port:9999");
System.exit(1);
}
try
{
clientSocket = serverSocket.accept();
is = clientSocket.getInputStream();
byteAvailable = is.available();
b = new byte[byteAvailable];
is.read(b);
String str = new String(b);
System.out.println(str);
System.out.println("some one connect to server");
}
catch(IOException e)
{
System.err.println("Accept failed");
System.exit(1);
}
is.close();
clientSocket.close();
serverSocket.close();
}
}
在自己机子实验,能发现客户端连接,并能输出客户端传来的数据。可是在不同的机子上实验,服务器能发现客户端连接,可是输出客户端的数据为空。请各位大侠请教下到底为啥
展开