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

📄 message.java

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

import java.io.*; 
import java.net.*; 
import java.util.Vector;
import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.TitledBorder;
import java.awt.event.*; 
public class Message extends Thread 
{
	private final static String NEW_LINE = System.getProperty("line.separator");
	private int iport;
	private Socket cc;
	private Socket fc;
	private Socket tc;
	private OutputStreamWriter osw=null; 
	private InputStreamReader isr=null; 
	private BufferedReader br; 
	private JTextField sip;
	private JTextField cip;
	private JTextField sport;
	private JTextField cport;
	private JTextArea input=new JTextArea();
	private JButton request;
	private JButton accept;
	private JButton open;
	private JButton audio;
	private JTextArea chatroom=new JTextArea();
	private JFrame cf; 
	private String add;
	private String port;
	private MultiThread send;
	private MultiChat insecond;
	private String name;
	public Message(String add,String port,String name)
	{
		super("CHAT-ROOM for "+name);
		this.add=add;
		this.port=port;
		this.name=name;
		sip=new JTextField();
		cip=new JTextField();
		sport=new JTextField();
		cport=new JTextField();
		request=new JButton("ASK");
		accept=new JButton("SENT");
		open=new JButton("SENT-FILE");
		audio=new JButton("MIC-SPC");
		cf=new ChatFrame(sip,cip,sport,cport,input,chatroom,accept,open,audio,this);
		cf.setSize(480, 385);
		cf.show();
		if(!port.equals(""))
		iport=Integer.parseInt(port);
	}
	public void run()
	{
		request.setVisible(false);	
		try
		{ 
			if(cc==null)
			{
		        cc=new Socket(add,iport*2+7444); 
		        fc=new Socket(add,7656);
		        tc=new Socket(add,7652);
		    }
		}
		catch(Exception e)
		{ 
			chatroom.append(add +":"+ iport +"已经下线"+ '\n');   
			try
			{ 
			    Thread.sleep(1000); 
			}
			catch(InterruptedException ie)
			{ 
			    System.exit(0); 
			} 
			System.out.println(e.toString());
		} 
		sip.setText(cc.getInetAddress().getHostAddress());
		sport.setText(cc.getPort()+"");
		cip.setText(cc.getLocalAddress().getHostAddress());
		cport.setText(cc.getLocalPort()+"");
		accept.requestFocus(); 
		try
		{
			osw= new OutputStreamWriter(cc.getOutputStream()); 
			isr = new InputStreamReader(cc.getInputStream()); 
			br= new BufferedReader(isr); 
		}
		catch(IOException ioe)
		{ 		
		} 
		accept.setEnabled(true); 
		accept.addActionListener(new BsendListener(chatroom, input, osw)); 
		open.setEnabled(true); 
		open.addActionListener(new Select(osw)); 
		audio.setEnabled(true); 
		audio.addActionListener(new Talk()); 
		insecond=new MultiChat(chatroom,osw,br,fc,name);	
	    insecond.start();
	}
	class BsendListener implements ActionListener
	{ 
		JTextArea chatroom; 
		JTextArea input; 
		OutputStreamWriter osw; 
		BsendListener(JTextArea content, JTextArea send, OutputStreamWriter osw){ 
		    this.chatroom = content; 
		    this.input= send; 
		    this.osw = osw; 
		} 
		public void actionPerformed(ActionEvent e)
		{ 
			String inputs; 
			inputs=input.getText(); 
			if(inputs.length() > 0)
			{ 
			    chatroom.append(NEW_LINE+name+": "); 
			    chatroom.append(NEW_LINE+"  "+inputs); 
			    try
			    { 
					String n=name+":";
					osw.write(n+'\n',0,n.length()+1);
					osw.flush();
					osw.write("  "+inputs+'\n',0,("  "+inputs).length()+1); 
					osw.flush();
				}
			    catch(Exception ee)
			    { 
					chatroom.append(NEW_LINE+"不能发送 \""+inputs+"\" , 发生了错误 : "+ee.getMessage()); 
				} 
			    input.setText(""); 
			    input.requestFocus(); 
		    } 
		} 
	} 
	public class Select implements ActionListener
	{
		OutputStreamWriter osw; 
		Select(OutputStreamWriter osw)
		{  
			this.osw=osw; 
		} 
		public void actionPerformed(ActionEvent e)
		{
			try
			{
			    send=new MultiThread(fc,"send",osw,chatroom);
			    send.start();
			}
			catch(Exception ex)
			{
				chatroom.append(NEW_LINE+"发生了错误 : "+ex.getMessage());
			}
		}
	}
	public class Talk implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			try
			{
				Capture talker=new Capture(tc);
				Playback listener=new Playback(tc);
				talker.start();
				listener.start();
			}
			catch(Exception ex)
			{
			}
		}
	}
}

⌨️ 快捷键说明

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