`

Java UDP聊天程序

    博客分类:
  • java
阅读更多

同学网上找的代码,说会乱码。看了源码,没发现什么原因,运行起来对方发送过来的字符串确实是乱码的。同学用的NetBeans我用的Eclipse,而NetBeans默认的编码是UTF-8,Eclipse默认的是GBK;琢磨着就是这个引起的。。。。都改成一样的编码就没事了。代码如下:

Code:
  1. packagetest;
  2. importjava.awt.BorderLayout;
  3. importjava.awt.List;
  4. importjava.awt.TextField;
  5. importjava.awt.event.ActionEvent;
  6. importjava.awt.event.ActionListener;
  7. importjava.io.IOException;
  8. importjava.net.DatagramPacket;
  9. importjava.net.DatagramSocket;
  10. importjava.net.InetAddress;
  11. importjava.net.SocketException;
  12. importjava.net.UnknownHostException;
  13. importjavax.swing.JFrame;
  14. importjavax.swing.JPanel;
  15. publicclassnetchat{
  16. JFramejf=newJFrame("聊天窗口");
  17. Listl=newList(6);
  18. JPaneljp=newJPanel();
  19. TextFieldtip=newTextField(15);
  20. TextFieldtdata=newTextField(15);
  21. DatagramSocketds;
  22. //DatagramPacketdp;
  23. publicnetchat(){
  24. tip.setText("127.0.0.1");
  25. try{
  26. ds=newDatagramSocket(3000);
  27. }catch(SocketExceptione){
  28. e.printStackTrace();
  29. }
  30. newThread(newRunnable()
  31. {
  32. DatagramPacketdp;
  33. publicvoidrun(){
  34. byte[]buf=newbyte[1024];
  35. dp=newDatagramPacket(buf,1024);
  36. while(true){
  37. try{
  38. ds.receive(dp);
  39. //l.add(dp.getAddress().getHostName()+"say:"+new
  40. //String(buf,0,dp.getLength()),-1);
  41. //l.add(dp.getAddress().getHostAddress()+"say:"+new
  42. //String(buf,0,+dp.getLength()),-1);
  43. System.out.println("aaaa");
  44. Stringstr=newString(dp.getData(),0,dp.getLength());
  45. System.out.println("数据1是:"+str);
  46. Stringstr2=newString(buf,0,dp.getLength());
  47. System.out.println("数据2是:"+str2);
  48. l.add(dp.getAddress().getHostAddress()+"say:"+str,
  49. -1);
  50. }catch(IOExceptione){
  51. e.printStackTrace();
  52. }
  53. }
  54. }
  55. }).start();
  56. }
  57. publicstaticvoidmain(String[]args){
  58. newnetchat().init();
  59. }
  60. privatevoidinit(){
  61. jf.add(l);
  62. jp.add(tip,BorderLayout.WEST);
  63. jp.add(tdata,BorderLayout.EAST);
  64. jf.add(jp,BorderLayout.SOUTH);
  65. jf.setSize(400,300);
  66. jf.setVisible(true);
  67. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  68. tdata.addActionListener(newActionListener(){
  69. publicvoidactionPerformed(ActionEvente){
  70. byte[]buf;
  71. Stringstr222=e.getActionCommand();
  72. buf=str222.getBytes();
  73. System.out.println("ddd="+str222);
  74. l.add("我说:"+str222,-1);
  75. //buf=e.getActionCommand().getBytes();
  76. DatagramPacketdp;
  77. try{
  78. dp=newDatagramPacket(buf,buf.length,InetAddress
  79. .getByName(tip.getText()),3000);
  80. ds.send(dp);
  81. }catch(UnknownHostExceptione1){
  82. e1.printStackTrace();
  83. }catch(IOExceptione1){
  84. e1.printStackTrace();
  85. }
  86. ((TextField)e.getSource()).setText("");
  87. }
  88. });
  89. }
  90. }

运行结果就是一个小窗体。。。

分享到:
评论

相关推荐

    java简单UDP聊天程序

    Java UDP聊天程序是一种基于用户数据报协议(User Datagram Protocol,UDP)实现的简单通信应用。UDP是TCP/IP协议族中的一个无连接、不可靠的传输协议,它在发送数据时不需要建立连接,也不保证数据包的顺序到达和...

    JavaUDP开发简单聊天系统

    在本项目中,“JavaUDP开发简单聊天系统”是指使用Java语言实现的一个基于UDP协议的简易聊天程序。下面我们将深入探讨Java UDP编程的关键概念和技术。 首先,Java提供了`java.net.DatagramSocket`类来处理UDP通信。...

    java 简单的聊天程序 UDP通信

    现在,我们将深入探讨如何用Java实现这样的UDP聊天程序。 首先,我们需要了解Java中的Socket编程。在TCP中,我们使用`Socket`和`ServerSocket`类,而在UDP中,我们使用`DatagramSocket`和`DatagramPacket`。`...

    java基于UDP聊天

    通过以上这些知识点的综合运用,你可以构建一个简单的Java UDP聊天程序,实现两个用户端之间的通信。不过,实际开发中,可能还需要考虑更多因素,如用户认证、消息历史记录、用户界面设计等,以提供更完整的用户体验...

    java 简单的UDP聊天程序

    简单的UDP聊天程序,服务器端:创建DatagramSocket对象用于打开指定端口并监听,然后用创建一个DatagramPacket,利用DatagramSocket中的receive(ds)方法接收数据并放到刚创建的DatagramPacket对象中; 这样就完成...

    UDP的Java聊天程序

    #### 五、Java UDP聊天程序实现 在实现基于UDP的聊天程序时,通常会将程序分为几个类: - **主类**(例如`Chat`):通常包含主函数`main`,用于启动应用程序。 - **窗体类**(例如`FrameMain`):扩展了`JFrame`类,...

    java多线程实现TCP连接UDP聊天的聊天程序

    java多线程实现TCP连接UDP聊天的聊天程序

    基于UDP的聊天程序

    【基于UDP的聊天程序】 UDP(User Datagram Protocol,用户数据报协议)是互联网协议栈中的一个传输层协议,它提供了一种无连接、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)相比...

    java udp多人聊天室

    Java UDP多人聊天室是一个利用Java语言和用户数据报协议(UDP)开发的多用户交互系统。UDP是一种无连接的、不可靠的传输协议,适用于实时通信和对速度要求较高的场景,因为它无需建立连接,直接发送数据包,减少了...

    UDP.rar_Java UDP 聊天_UDP_java udp_udp java_udp 聊天

    java写的UDP聊天程序 十分好用哦!下载联系277937187

    UDP.rar_UDP_java UDP聊天_java udp_java 聊天 UDP_udp 聊天

    这个"UDP.rar"可能包含了一个简单的本地UDP聊天程序,让我们来深入探讨一下相关的Java UDP编程知识点: 1. **DatagramSocket类**:这个类代表了UDP的套接字,用于发送和接收数据报。创建一个DatagramSocket实例,...

    UDP.rar_UDP_java UDP聊天_udp java_udp java 服务_udp 聊天 java

    标签"udp_java_udp聊天"和"udp_java_服务"进一步强调了这个系统是基于Java的UDP通信,实现了一个简单的聊天功能,其中服务器负责接收和转发消息,客户端负责发送和接收消息。 总的来说,这个项目提供了一个基础的...

    java udp聊天

    Java UDP聊天程序是一种基于用户数据报协议(UDP)的通信应用。UDP是传输层协议,与TCP(传输控制协议)不同,它不提供连接、顺序保证或错误校正,因此速度较快,但可能会丢失数据。这个Java项目允许用户进行简单的...

    UDP聊天程序_rowqfw_网络编程_udp进行c/s编程_

    标题中的“UDP聊天程序_rowqfw_网络编程_udp进行c/s编程_”表明这是一个关于使用UDP(用户数据报协议)实现C/S(客户机/服务器)架构的简单聊天程序项目。在这个项目中,我们将深入探讨UDP协议的特点以及如何在C/S...

    java基于UDP协议的聊天程序(完整版)

    Java基于UDP协议的聊天程序是一种实现网络通信的应用实例,它利用了无连接的用户数据报协议(User Datagram Protocol,简称UDP)进行数据传输。在这个完整版的程序中,开发者已经完成了从设计到调试的全部过程,使其...

    ClientUDP.rar_java udp_java 聊天程序_点对点聊天_点对点聊天 UDP

    Java UDP(用户数据报协议)聊天程序是一种基于无连接网络协议的应用,用于实现点对点通信。在Java中,我们通常使用`java.net.DatagramSocket`类来处理UDP通信。这种类型的通信允许数据包快速地发送到网络上的任何...

    java UDP实现P2P聊天程序

    java实现P2P聊天程序,使用UDP协议。 含有GUI,带有注释。 若有不足,欢迎指正。

    基于UDPjava聊天程序

    【标题】"基于UDPjava聊天程序"涉及到的核心技术是Java编程语言与用户数据报协议(UDP)的结合,用于创建一个简单的聊天应用。在Java中,UDP通信主要通过`java.net.DatagramSocket`和`java.net.DatagramPacket`类来...

    udp-chat.rar_UDP聊天室_java udp chat_java udp 聊天_udp chat

    UDP不保证数据包的顺序、完整性和可靠性,因此在设计UDP聊天室时,需要开发者自行处理这些方面的问题。例如,可能会出现数据包重复、丢失或乱序的情况,需要通过编程逻辑来解决这些问题。 在描述中提到,用户端的...

Global site tag (gtag.js) - Google Analytics