java实现局域网聊天

问题描述

packagetest05;publicclassGameSize{publicstaticfinalintGAME_X=200;publicstaticfinalintGAME_Y=300;publicstaticfinalintGAME_WIDTH=400;publicstaticfinalintGAME_HIGH=530;}packagetest05;importjava.net.*;importjava.io.DataInputStream;importjava.io.EOFException;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;/***1.主线程负责打开服务器以及接受客户端的链接*2.每接受一个客户端的链接就开辟一个线程***/publicclassChatServer{/**主线程*/publicstaticvoidmain(String[]args){ServerSocketss=null;ChatServercs=newChatServer();try{ss=newServerSocket(8888);cs.accept(ss);}catch(BindExceptione){System.out.println("端口已被占用,请关闭端口");}catch(IOExceptione){e.printStackTrace();}}/**接受客户端的连接*/publicvoidaccept(ServerSocketss)throwsIOException{Socketsocket=null;booleanbAccept=true;try{while(bAccept){socket=ss.accept();newThread(newClientThread(ss,socket)).start();}}catch(IOExceptione){e.printStackTrace();}finally{if(socket!=null){socket.close();socket=null;}}}classClientThreadimplementsRunnable{booleanflag=true;ServerSocketss=null;Socketsocket=null;DataInputStreamdis=null;publicClientThread(ServerSocketss,Socketsocket){this.ss=ss;this.socket=socket;}publicvoidrun(){try{dis=newDataInputStream(socket.getInputStream());while(flag){System.out.println(dis.readUTF());}}catch(EOFExceptione){try{socket.close();System.out.println("客户端已关闭");}catch(IOExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}}catch(IOExceptione){e.printStackTrace();}finally{try{if(socket!=null){socket.close();socket=null;}}catch(IOExceptione){}}}}}packagetest05;importjava.awt.*;/***1.窗口的设计*2.按钮的添加**/importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.*;importjava.net.*;publicclassChatClientextendsFrame{TextFieldtf=null;TextAreata=null;Buttonbutton=null;Socketsocket=null;DataOutputStreamdos=null;/***主方法:加载窗口**/publicstaticvoidmain(String[]args){newChatClient().launchFrame();}/**窗口的属性:*1.加载窗口时与服务器建立连接*/publicvoidlaunchFrame(){setBounds(GameSize.GAME_X,GameSize.GAME_Y,GameSize.GAME_WIDTH,GameSize.GAME_HIGH);setVisible(true);setTitle("我的聊天");this.setResizable(false);this.setLayout(null);addConpomnent();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){CloseAll(socket,dos);System.exit(0);}});connection();}/**向服务器端申请链接*初始化dos*/publicvoidconnection(){try{socket=newSocket("localhost",8888);dos=newDataOutputStream(socket.getOutputStream());System.out.println("一个客户端请求链接");}catch(UnknownHostExceptione){CloseAll(socket,dos);System.out.println("未找到主机");}catch(IOExceptione){CloseAll(socket,dos);System.out.println("IO有错误");}}/**流的关闭*/publicvoidCloseAll(Closeable...io){for(Closeabletemp:io){try{if(temp!=null){temp.close();temp=null;}}catch(IOExceptione){e.printStackTrace();}}}/**向服务器端发送信息*/publicvoidsendMessage(Stringstr){try{dos.writeUTF(str);dos.flush();}catch(IOExceptione){CloseAll(socket,dos);e.printStackTrace();}}/**添加conpoment*/publicvoidaddConpomnent(){tf=newTextField();tf.setBounds(10,GameSize.GAME_HIGH*4/5+30,GameSize.GAME_WIDTH*4/5,GameSize.GAME_HIGH-GameSize.GAME_HIGH*4/5);tf.addActionListener(newtfAction());add(tf);ta=newTextArea();ta.setBounds(10,30,GameSize.GAME_WIDTH,GameSize.GAME_HIGH*4/5);add(ta);button=newButton("发送");button.setBounds(GameSize.GAME_WIDTH*4/5,GameSize.GAME_HIGH*4/5+30,GameSize.GAME_WIDTH-GameSize.GAME_WIDTH*4/5,GameSize.GAME_HIGH-GameSize.GAME_HIGH*4/5);button.addActionListener(newbuttonAction());add(button);}/**textArea的监听*/classtfActionimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){tf=(TextField)e.getSource();ta.setText(ta.getText()+tf.getText()+'n');sendMessage(tf.getText());tf.setText(null);}}/**button的监听*/classbuttonActionimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){Buttonb=(Button)e.getSource();ta.setText(ta.getText()+tf.getText()+'n');sendMessage(tf.getText());tf.setText(null);}}}

解决方案

解决方案二:
楼主是想表达什么啊~~~~~~

时间: 2024-07-30 17:31:52

java实现局域网聊天的相关文章

基于java编写局域网多人聊天室_java

由于需要制作网络计算机网络课程设计,并且不想搞网络布线或者局域网路由器配置等等这种完全搞不懂的东西,最后决定使用socket基于java编写一个局域网聊天室: 关于socket以及网络编程的相关知识详见我另一篇文章:Java基于socket编程 程序基于C/S结构,即客户端服务器模式. 服务器: 默认ip为本机ip 需要双方确定一个端口号 可设置最大连接人数 可启动与关闭 界面显示在线用户人以及姓名(本机不在此显示) 客户端: 需要手动设置服务器ip地址(局域网) 手动设置端口号 输入姓名 可连

求用pb或c#做的局域网聊天软件源代码

问题描述 寻求一个用pb或c#做的局域网聊天软件源代码,功能有:聊天.传送文件.语音. 解决方案 解决方案二:好象没有这么完整的.解决方案三:建议用java吧,C#的使用者们估计还没有这么强的开源精神.看看java的openfire和spark吧,都是开源的解决方案四:openfire和spark不只支持前述的功能,视频聊天也支持的解决方案五:资料带源码,绝对完整,直接可以编译http://blog.csdn.net/HeddaZ/archive/2008/04/23/2317343.aspx解

局域网聊天软件(winsocket)

程序实现功能: 局域网聊天软件,启动即可找到在线设备,并能够进行简单的文字聊天. 其实下面这个框图已经说明了程序的绝大部分功能原理. 核心类的程序框图 我觉得,这个程序中使用的最好的技术,应该就是IOCP了.后面我会针对IOCP好好地写一篇博文,这个技术虽然刚学的时候有点乱,但是确实很好用. 上面的框图中中间的UDPServer线程等待的事件完成是MainServer线程在Listen函数调用结束后设置的事件.这里忘了标了. 说明 前几天在实验室看<Windows网络与通信程序设计>这本书,看

winsocket局域网聊天软件怎么运行?

  程序实现功能: 局域网聊天软件,启动即可找到在线设备,并能够进行简单的文字聊天. 其实下面这个框图已经说明了程序的绝大部分功能原理. 核心类的程序框图 我觉得,这个程序中使用的最好的技术,应该就是IOCP了.后面我会针对IOCP好好地写一篇博文,这个技术虽然刚学的时候有点乱,但是确实很好用. 上面的框图中中间的UDPServer线程等待的事件完成是MainServer线程在Listen函数调用结束后设置的事件.这里忘了标了. 说明 前几天在实验室看<Windows网络与通信程序设计>这本书

通信-C#基于TCP的局域网聊天工具 不知道怎么接收消息部分怎么写 求设计思路

问题描述 C#基于TCP的局域网聊天工具 不知道怎么接收消息部分怎么写 求设计思路 我之所以问这个问题是因为我说的接收消息不是那种两个窗口都开着 发送或接收的 而是当接收的用户不在场时 聊天窗口并未打开也能接收 只是好友列表里的好友在闪 然后等用户回来 点击好友时聊天窗口,好友发送过来的那些信息还有 然后用户也能回复 说白了就是qq那样的 我只能做到发送信息 和当发送消息,接收方的用户里对应的好友在闪(只是在闪 也不能接收消息和打开窗口) 想问问大侠们 如果是你们大概会怎么设计这一块 .....

java源码-基于java的即时聊天系统设计与实现源代码

问题描述 基于java的即时聊天系统设计与实现源代码 我是一个菜鸟,最近在做一个即时聊天系统,希望给一些,关于文件传输方面的代码,这些大家喽 解决方案 http://blog.csdn.net/u011596810/article/details/39003523 这个是讲socket请求连接,可以看看 解决方案二: 基于websocket+java聊天系统的实现 解决方案三: 如果你是web系统的话,可以考虑h5的websocket 解决方案四: node.js+html5+webRTC 解决

使用JAVA编写一个聊天程序,要求有图形界面,还有就是要显示联系人,后天就要交作业了,求大神!

问题描述 JAVA编写,聊天程序,有图形界面,还有界面显示联系人,类似于QQ的,但是极简的就行,求大神帮助啊,我后天就要交了,谢谢大神!!!!! 解决方案 解决方案二:网上有源代码--解决方案三:哪里有,我怎么没有找到,帮忙找一下!解决方案四:引用1楼u013335717的回复: 网上有源代码-- 哪里有,我怎么没有找到,帮忙找一下!解决方案五:上大学的时候写过好像还在U盘里趴着呢

java 实现视频聊天功能的实现

问题描述 java 实现视频聊天功能的实现 近来来储备知识,小弟已经在做视频聊天功能,现在是用opencv,现在主要是安装opencv之后,调取数据,程序老是说没有找到opencv的库,网上说opencv一定要放在c盘的根目录:请问各位大神,有没有这方面做好的经验,传授一下! 解决方案 首先可以肯定的是必须放在无中文名无空格的路径下.放哪个盘到关系不大,然后就是看你的程序具体是怎么"找"opencv的了. 请列出调用opencv的关键代码,即触发错误的代码,并附上报错信息.

基于c#用Socket做一个局域网聊天工具_C#教程

程序设计成为简单的服务端和客户端之间的通信, 但通过一些方法可以将这两者进行统一起来, 让服务端也成为客户端, 让客户端也成为服务端, 使它们之间可以互相随时不间断的通信. 考虑到实现最原始的服务端和客户端之间的通信所需要的步骤对于写这样的程序是很有帮助的. 作为服务端, 要声明一个Socket A并绑定(Bind)某一个IP+这个IP指定的通信端口, 比如这个是127.0.0.1:9050, 然后开始监听(Listen), Listen可以监听来自多个IP传过来的连接请求, 具体可以同时连接几