⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 friends.java

📁 java语音聊天系统 分为服务器端 客户端 连接之后 既可以相互通信 包括语音 摄像头
💻 JAVA
字号:
package PC;

import java.io.*; 
import java.net.*; 
import java.util.StringTokenizer;
import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.TitledBorder;
import java.awt.event.*;
import java.util.*;
public class Friends extends JFrame 
{
    private JList list = new JList();
    private String serverip;
    private String serverport;
    private String name;
    private String cips;
    private JLabel logo;
    private JLabel userip;
    private JLabel username;
    private JLabel server_ip;
    private JLabel server_port;
    private Socket cc;
    private Socket ck;
    private OutputStreamWriter osw=null; 
    private InputStreamReader isr=null; 
    private BufferedReader br; 
    private Vector<String> connected = new Vector<String>();
    
    public Friends()
    {
    }
    public Friends(String ip,String port,String usename)
    {
    	this.serverip=ip;
    	this.serverport=port;
    	this.name=usename;
    	Frame t = this;
    	t.setSize(480, 385);
    	setLayout(null);
    	setBackground(Color.white);
    	ImageIcon icon1 = new ImageIcon("lang1.jpg");
    	try
    	{ 
    	    InetAddress addr=InetAddress.getLocalHost();
            cips=addr.getHostAddress();
    	}catch(Exception e)
    	{
    	}
    	userip = new JLabel("local:"+cips);
    	logo = new JLabel(icon1);
    	username = new JLabel(name);
    	server_ip = new JLabel("server:"+serverip);
    	server_port = new JLabel("port:"+serverport);
    	logo.setSize(140, 100);
		logo.setLocation(0, 1);
		userip.setSize(140, 20);
		userip.setLocation(2, 320);
		username.setSize(140, 20);
		username.setLocation(2, 300);
		server_ip.setSize(140, 20);
		server_ip.setLocation(2, 260);
		server_port.setSize(140, 20);
		server_port.setLocation(2, 280);
		list.setSize(335, 350);
		list.setLocation(135, 1);
		add(logo);
		add(userip);
		add(list);
		add(username);
		add(server_ip);
		add(server_port);
		list.addMouseListener(new connect());
		addWindowListener
		(
			new WindowAdapter()
			{ 
			    public void windowClosing(WindowEvent e)
			    { 
				    System.exit(0); 
			    } 
			}
	    ); 
		try
		{ 
		    int iport=Integer.parseInt(port);
		    cc=new Socket(ip,iport); 
		}
        catch(Exception e)
        { 
		    server_ip.setText("无法连接");   	    
		    System.exit(0); 
	    } 
        try
        {
    		osw= new OutputStreamWriter(cc.getOutputStream()); 
    		osw.write(name+"\n",0,name.length()+1); 
    		osw.flush();
    		isr = new InputStreamReader(cc.getInputStream()); 
    		br= new BufferedReader(isr); 
    	}
        catch(IOException ioe)
        {    		
    		System.exit(0); 
    	}   
        Getlist getlist = new Getlist(br,list,osw,name);
        getlist.start();
        listen alllisten = new listen(cc,connected,name,this);
        alllisten.start();
    }
    
    public class connect extends MouseAdapter
    {
    	boolean all=true;
    	public void mouseClicked(MouseEvent e)
    	{
    		if(e.getClickCount()==2)
    		{   			
    			String s = (String)list.getSelectedValue();
    			StringTokenizer stringtokenizer = new StringTokenizer(s,"->");
 			    String stoken="";
 			    stoken=stringtokenizer.nextToken();
 			    stoken=stringtokenizer.nextToken();
 			    String newone = stoken;
			    
			    if(all&&!newone.equals(cips+":"+cc.getLocalPort()))
			    {
			    	connected.add(newone);
			    	stringtokenizer = new StringTokenizer(stoken,":");
			    	Message mage = new Message(stringtokenizer.nextToken(),stringtokenizer.nextToken(),name);
			    	mage.start();
			    }
    		}
    	}
    }
    public  Vector<String> getconnected()
    {
    	return connected;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -