java 语言写的语音聊天程序
2006-11-21 11:07
435 查看
java语言写的语音聊天程序
同学让我给他写这个程序的时候,也就爽快地答应了!
受朋友之托,写了一个小的语音聊天程序,不敢独享,写出来供大家分享!
由于在上大学的时候,老师曾经教我们做过一个聊天程序,再说网络上的资料这么丰富,所以当时
同学让我给他写这个程序的时候,也就爽快地答应了!
这个程序分为两个部分:文字聊天程序和语音聊天程序。
文字聊天程序很简单,最主要的是使用Socket编程,利用TCP协议,写一个服务器端程序,在写一
个客户端程序.
在服器端new一个ServerSocket的对象server=newServerSocket(5000),
在new一个Socket的对象client=server.accept();
在客户端new一个Socket的对象client=newSocket("127.0.0.1",5000);
接下来就是建立输入流和输出流用于接受服务端和客户端的文字的传输。
在服务端和客户端程序中,分别使用InputStreamOutputStreamBufferedReader
Bufferedwriter进行文字流的接受。
这个个程序其实就是这么简单,然后我们使用Frame框架进行界面的显示就OK了!
说了这么多,让我们来看看具体的程序是怎么实现的。
服务端程序如下:
//服务端
importjava.io.*; importjava.awt.*; importjava.awt.event.*; importjava.net.*;
publicclassServerextendsFrame { TextFieldtf=newTextField(20); TextAreata=newTextArea(); Buttonsend=newButton("send"); ButtonvoiceChat=newButton("voiceChat"); ServerSocketserSocket; Socketclient; InputStreamin; BufferedReaderbr; OutputStreamout; BufferedWriterbw; publicServer() { super("Server"); add("North",tf); add("Center",ta); add("South",send); add("East",voiceChat); setBackground(Color.yellow); setSize(250,250); show(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); System.exit(0); } }); try { ServerSocketserSocket=newServerSocket(5000); client=serSocket.accept(); ta.append("clienthost"+client.getInetAddress().getHostName()+"/n/n"); in=client.getInputStream(); br=newBufferedReader(newInputStreamReader(in)); out=client.getOutputStream(); bw=newBufferedWriter(newOutputStreamWriter(out)); } catch(Exceptione) { } while(true) { try { byte[]buf=newbyte[200]; in.read(buf); Stringstr=newString(buf); ta.append("Clientsay:"+str); ta.append("/n"); } catch(IOExceptione) { } } } publicbooleanaction(Eventevt,Objectarg){ if(evt.target.equals(send)) { try { Stringstr=tf.getText(); byte[]buf=str.getBytes(); tf.setText(null); out.write(buf); ta.append("Isay:"+str); ta.append("/n"); } catch(IOExceptionioe){} } elseif(evt.target.equals(voiceChat)) { try{ //ServerSocketserSock=newServerSocket(6000); //Socketcli=serSock.accept(); //Playbackplayer=newPlayback(cli); //player.start(); } catch(Exceptione){} } returntrue; }
publicstaticvoidmain(String[]args) { Serverserver=newServer(); } } 客户端程序如下:
//客户端
importjava.io.*; importjava.awt.*; importjava.awt.event.*; importjava.net.*;
publicclassClientextendsFrame { TextFieldtf=newTextField(20); TextAreata=newTextArea(); Buttonsend=newButton("send"); ButtonvoiceChat=newButton("voiceChat"); Socketclient; InputStreamin; OutputStreamout; BufferedReaderbr; BufferedWriterbw; publicClient() { super("Client"); add("North",tf); add("Center",ta); add("South",send); add("East",voiceChat); setSize(250,250); show(); addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); System.exit(0); } }); try { Socketclient=newSocket("127.0.0.1",5000); ta.append("Connectto:"+client.getInetAddress().getHostName()+"/n/n"); in=client.getInputStream(); br=newBufferedReader(newInputStreamReader(in)); out=client.getOutputStream(); bw=newBufferedWriter(newOutputStreamWriter(out)); } catch(IOExceptionioe){} while(true) { try { byte[]buf=newbyte[200]; in.read(buf); Stringstr=newString(buf); ta.append("Serversay:"+str); ta.append("/n"); } catch(IOExceptione){ System.out.print(e.getMessage()); } } } publicbooleanaction(Eventevt,Objectarg){ if(evt.target.equals(send)) { try { Stringstr=tf.getText(); byte[]buf=str.getBytes(); tf.setText(null); out.write(buf); ta.append("Isay:"+str); ta.append("/n"); } catch(IOExceptionioe){ System.out.print(ioe.getMessage()); } } elseif(evt.target.equals(voiceChat)) { try { //Socketcli=newSocket("127.0.0.1",6000); //Capturecap=newCapture(cli); //cap.start(); } catch(Exceptione) {} } returntrue; } publicstaticvoidmain(String[]args) { Clientclient=newClient(); } } 有了服务端和客户端程序,我们进行编译和运行就可以实现文字聊天了!
编译:javacServer.javaClient.java
运行:javaServer
javaClient
这样我们就可以看到一个服务端界面和客户端界面了,分别在输入框中输入hi,然后单击send
按钮就可以在客户端和服务端看到我们输入的文字了。
这样文字聊天的程序就完成了!
接下来就应该是语音聊天的程序的部分了!
待续........
相关文章推荐
- java 语言写的语音聊天程序(续)
- 微信 开发 聊天机器人设计方案 java语言 程序和数据库代码
- Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase
- java语音聊天程序
- java swing聊天程序--带语音
- Java语言程序设计-Eclipse入门之HelloWorld程序
- Java简易多用户聊天程序项目经历
- 使用SAX解析msn聊天记录文档的java小程序
- java语言-下雪花的简单小程序
- 用Java语言编写程序,计算1-1/2+1/3-1/4+……+1/99-1/100
- 极简易版专家聊天程序--JAVA练手
- 简单的局域网聊天程序(java版本的)
- JAVA简单聊天程序
- 一个Java实现的简单的多个客户端聊天程序(未测试)
- Java多语言编程-程序国际化
- java版两人聊天程序
- Java之J2se-Java语言基础(程序结构) 教学视频发布了,请小伙伴们前往观看
- java语言多线程程序总结
- 最基础的java socket聊天程序应该烂熟于心
- JAVA版的小聊天程序