千家信息网

如何在java中使用网络通信技术实现聊天小程序

发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,这篇文章主要介绍了如何在java中使用网络通信技术实现聊天小程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何在java中使用网络通信技术实现聊天小程序文章都会有所收
千家信息网最后更新 2024年09月23日如何在java中使用网络通信技术实现聊天小程序

这篇文章主要介绍了如何在java中使用网络通信技术实现聊天小程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何在java中使用网络通信技术实现聊天小程序文章都会有所收获,下面我们一起来看看吧。

首先是服务端代码:

package ChatTwoPackage; import java.io.*;import java.net.*; public class ChatTwoServer {  public ChatTwoServer(int port,String name) throws IOException { ServerSocket server=new ServerSocket(port);//创建seversocket对象,提供tcp连接服务。指定端口port,等待tcp连接。 System.out.print("正在等待连接,请勿操作!"); Socket client=server.accept();//创建socket对象,它等待接收客户端的连接。 new ChatTwoClient(name,client);//实现图形界面。 server.close(); }  public static void main(String[] args) throws IOException { new ChatTwoServer(2001,"SQ");  } }

然后是客户端的代码:

package ChatTwoPackage; import java.awt.event.*;import javax.swing.*;import java.net.*;import java.io.*; public class ChatTwoClient extends JFrame implements ActionListener { private String name; private JTextArea text_re; private JTextField text_se; private PrintWriter cout; private JButton buttons[]; public ChatTwoClient(String name,Socket socket) throws IOException { super("我:"+name+InetAddress.getLocalHost().getHostAddress()+":"+socket.getLocalPort()); this.setBounds(320, 240, 400, 240); this.text_re=new JTextArea(); this.text_re.setEditable(false); this.getContentPane().add(new JScrollPane(this.text_re));  JToolBar toolBar=new JToolBar(); this.getContentPane().add(toolBar,"South"); toolBar.add(this.text_se=new JTextField(30)); buttons=new JButton[2]; buttons[0]=new JButton("发送"); buttons[1]=new JButton("下线"); toolBar.add(buttons[0]); toolBar.add(buttons[1]); buttons[0].addActionListener(this); buttons[1].addActionListener(this);//给按钮添加事件监听,委托当前对象处理 this.setVisible(true); this.name=name; this.cout=new PrintWriter(socket.getOutputStream(),true);//获得socket输出流 this.cout.println(name); BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream())); //将socket的字节输入流转换为字符流,默认GBK字符集,再创建缓冲字符输入流        String line="连接"+br.readLine()+"成功";        while(line!=null&&!line.endsWith("bye")) {  text_re.append(line+"\r\n");  line=br.readLine(); }//读取对方发送的内容并显示,直到内容为为空或对方下线 br.close(); this.cout.close(); socket.close(); buttons[0].setEnabled(false); buttons[1].setEnabled(false); } public ChatTwoClient(String name,String host,int port) throws IOException { this(name,new Socket(host,port));//调用另一个构造方法 } public void actionPerformed(ActionEvent ev) { if(ev.getActionCommand().equals("发送")) {  this.cout.println(name+":"+text_se.getText());  text_re.append("我:"+text_se.getText()+"\n");  text_se.setText(""); }//按下发送按钮后,将内容发出,并更新自己聊天框的内容 if(ev.getActionCommand().equals("下线")) {  text_re.append("你已下线\n");  this.cout.println(name+"离线\n"+"bye\n");  buttons[0].setEnabled(false);  buttons[1].setEnabled(false); }//下线按钮按下后,发送bye作为下线标记 }   public static void main(String[] args) throws IOException { new ChatTwoClient("mxl","127.0.0.1",2001); //ip地址和端口  } }

运行效果:

说明:

1.两台计算机一台作为服务端,作为服务端的计算机需要有两个代码。首先运行服务端的代码,等待客户端机器连接,客户端运行客户端代码后,提示连接成功。就可以发送信息了。

2.运行代码前需要将ip地址改为自己计算机当前的ip地址(Modem、ISDN、ADSL、有线宽频、小区宽频等方式上网的计算机,每次上网所分配到的IP地址都不相同,这称为动态IP地址)。如果要用一台计算机充当客户端和服务端,就将ip地址写为:127.0.0.1(127.0.0.1是回送地址,指本地机,一般用来测试使用)。先运行服务端代码,再运行客户端代码即可。

关于"如何在java中使用网络通信技术实现聊天小程序"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"如何在java中使用网络通信技术实现聊天小程序"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

代码 地址 客户 服务 下线 内容 运行 客户端 计算机 技术 程序 网络 通信技术 通信 端的 字符 对象 按钮 知识 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 临沂大型软件开发公司 电力应用软件开发及维护服务 百川通联网络技术有限公司 软件开发选择哪个行业比较好 压实网络安全责任总结 网络安全产品市场占用率 全民k歌服务器出错什么意思 怎么选手机软件开发公司 江苏科航网络技术有限公司 怀旧服任务服务器 数据库所在盘符满了 dmp是什么数据库文件 网络安全教育讲稿.doc 数据库条件索引sql语句 ppt能制作数据库吗 部队网络安全个人反思材料 西安霄鹏网络技术服务有限公司 索爱无线互联网科技有限公司 net获取服务器ip 知止网络技术 字节数据库最新消息 网络安全验证码软件检测 移动应用软件开发技术有哪些 富士康工业互联网科技事业群 江西定制应用软件开发 阿里云域名解析到电信服务器 网络安全中_恢复是指 网络安全最常用认证方法 4核8G的服务器能开方舟吗 富士康软件开发年终奖
0