服务端
public class xxsocket {//服务端
static int count=0;
public static void main(String[] args){
JFrame jf=new JFrame("xx聊天室");
jf.setBounds(200,200,500,500);
JPanel jl=new JPanel();
final JTextArea jt=new JTextArea();
jt.setRows(25);
jt.setColumns(30);
jt.setBackground(Color.GRAY);
jt.setForeground(Color.CYAN);
jt.setEditable(false);
final JTextField jd=new JTextField();
jd.setColumns(25);
jd.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode()==e.VK_ENTER){
String aa=jd.getText();
jt.append(aa+"\n");
jd.setText("");
count++;
if (count==25){
jt.setText("消息过多,已清屏,请在后台聊天记录查询"+"\n");
count=0;
}
}
}
});
jf.setVisible(true);
jl.setBackground(Color.DARK_GRAY);
jl.add(jt,BorderLayout.NORTH);
jl.add(jd,BorderLayout.SOUTH);
jf.add(jl);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
try {
ServerSocket s = new ServerSocket(913);
Socket ss = s.accept();
InputStream in = ss.getInputStream();
byte[] buffer = new byte[1024];
int len = in.read(buffer);
final String a = new String(buffer, 0, len);
jt.setText("");
jt.append(a+"\n");
}catch(IOException e){
jt.append("发送失败"+"\n"+e);
}
}
}
客户端
public class socket{
public static void main(String[] args){
try {
Socket client = new Socket("localhost", 913);
OutputStream out = client.getOutputStream();
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
DataOutputStream dos = new DataOutputStream(client.getOutputStream());
DataInputStream dis = new DataInputStream(client.getInputStream());
boolean isRunning = true;
while(isRunning) {
String msg = console.readLine();
dos.writeUTF(msg);
dos.flush();
// 3、获取消息
msg = dis.readUTF();
System.out.println(msg);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}