package MyFrame; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.OutputStream; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.swing.JOptionPane; public class Msgthread extends Thread { private BufferedReader bf =null; private Socket sock =null; private String msg=null; private Myframe mf; public Msgthread(Socket sock,Myframe mf){ this.sock =sock; this.mf=mf; } //接收消息 public void run(){ try { bf =new BufferedReader(new InputStreamReader(this.sock.getInputStream())); String ms=bf.readLine(); //解析名字 String[] mess = ms.split("\\&",-1); //获取文本框原有消息 msg=mf.getPane().getContendjt().getText(); //接受消息 mf.getPane().getContendjt().setText(this.sock.getInetAddress().getHostAddress()+" 说:"+mess[1]+" ("+new SimpleDateFormat("MM-dd HH:mm:ss").format(new Date())+")\n"+this.msg); //增加该IP if(!mf.getPane().getIpjt().getSelectedItem().equals(this.sock.getInetAddress().getHostAddress())){ mf.getPane().getIpjt().addItem(this.sock.getInetAddress().getHostAddress()); } //获得接受IP mf.getPane().getIpjt().setSelectedItem(this.sock.getInetAddress().getHostAddress()); } catch (Exception e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(mf, "系统繁忙请稍后再试!"); return; }finally{ if(bf!=null){ try { bf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(sock!=null){ try { sock.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //接收文件 public void FileWrite(){ } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } //源代码片段来自云代码http://yuncode.net