接收端与发送端的简单演示

import java.io.*;import java.net.*;public class SocketDemo {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("发送端启动");System.out.println(InetAddress.getLocalHost().getHostAddress());DatagramSocket ds = new DatagramSocket();String str = "发送端来了了了";byte[] buf = str.getBytes();DatagramPacket dp = new   DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.3.4"),10101);ds.send(dp);ds.close();}}
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class SocketDemo2 {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("接收端启动");DatagramSocket ds = new DatagramSocket(10101);byte[] buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf,buf.length);ds.receive(dp);String ip = dp.getAddress().getHostAddress();int port = dp.getPort();String text  = new String(dp.getData(),0,dp.getLength());System.out.println(ip+"   "+port);System.out.println(text);ds.close();/** 由于UDP协议传输数据,只管发送数据,而不管接收是否能够接收到数据,因此应该先启动接收端程序,再启动发送端程序*/}}

双窗口聊天模式:

建立发送端:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;public class SocketChatDemoInput
{public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("发送端启动");DatagramSocket ds = new DatagramSocket();BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));String line = null;while((line = bufr.readLine())!=null){byte[] buf = line.getBytes();DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.3.4"),10102);ds.send(dp);if("over".equals(line))break;}ds.close();}}

建立接收端

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class SocketChatOutput {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("接收端启动");DatagramSocket ds = new DatagramSocket(10102);while(true){byte[] buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf,buf.length);ds.receive(dp);String ip =dp.getAddress().getHostAddress();int inpor = dp.getPort();String text = new String(dp.getData(),0,dp.getLength());System.out.println(ip+"  "+ inpor+"    \n"+text);}}}

单窗口聊天模式

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;class Send implements Runnable
{private DatagramSocket ds ;public Send(DatagramSocket ds){this.ds= ds;}public void run(){try{System.out.println("发送端启动");BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));String line = null;while((line = bufr.readLine())!=null){byte[] buf = line.getBytes();DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.3.4"),10103);ds.send(dp);if("over".equals(line)){System.out.println("聊天程序退出");break;}}ds.close();}catch(Exception e){System.out.println(e.toString());}}
}
class Rece implements Runnable
{DatagramSocket  ds;Rece(DatagramSocket ds){this.ds = ds;}public void run(){while(true){System.out.println("接收端启动");byte[] buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf,buf.length);try {ds.receive(dp);} catch (IOException e) {e.printStackTrace();}String ip = dp.getAddress().getHostAddress();int port = dp.getPort();String text = new String(dp.getData(),0,dp.getLength());System.out.println(ip+"   "+ port+"   \n"+text);}}}public class SocketGroupChat
{public static void main(String[] args) throws Exception {// 单窗口聊天模式DatagramSocket send = new DatagramSocket();DatagramSocket rece = new DatagramSocket(10103);Send s = new Send(send);Rece r = new Rece(rece);new Thread(s).start();new Thread(r).start();}}

java基础—网络编程———聊天窗口的建立相关推荐

  1. JAVA基础 网络编程

    JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...

  2. Java基础---网络编程

    第一讲     概述 1.网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP. 通常用 ...

  3. 黑马程序员——java基础---网络编程

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  4. java基础-网络编程

    1.网络模型: OSI参考模型.TCP/IP参考模型 数据传输的过程:向下走:封包    向上走:拆包 向上走一直拆包,直到得到数据. 2.网络通讯要素 ip地址.端口号.传输协议 Ip和端口用来找对 ...

  5. java基础网络编程

    利用网络,实现两台计算机之间的互相联通.交互. 网络编程有两类: UDP 一种无连接的传输层协议.无连接:指不需要知道对方在不在,只负责发数据传输出去,而对方可能不在,数据便会丢失,所以是不稳定的. ...

  6. 黑马程序员——Java基础——网络编程1

    ------- android培训.java培训.期待与您交流! ---------- 网络编程1 一.获取IP     网络编程主要在传输层 :TCP(Transmission Control Pr ...

  7. 学习笔记-java基础-网络编程

    刚在培训机构学习完JAVA基础和WEB,感觉边学边忘.就把这作为记忆的笔记,我也不知道要不要记笔记,写在本子上太耗费时间了. 一.要想实现网络通信,首先要解决两个问题: ①:如何从网络中定位到一台或多 ...

  8. Java基础(网络编程基础)

    1.软件结构 C/S:客户端和服务器(QQ.微信) B/S:浏览器和服务器(火狐.IE.谷歌) 2.网络通信协议 网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行 ...

  9. Java基础——网络编程

    一.网路编程知识 意义:过去我们IO流是把本地的文件传递而已,网络编程是把自己电脑的数据传递给另一台电脑,并且回馈信息.这是数据通讯 1.通讯三要素 1.1 IP地址 (1)获取对方主机IP 1.2 ...

最新文章

  1. CFRunLoopRef 的内部逻辑(向 ibireme学习)
  2. Linux aptget 参数,ubuntu下apt-get 命令参数大全
  3. python列表按值排序_json的python排序列表(按值)
  4. python开发串口通信界面_python3脚本篇1-串口通讯脚本
  5. Sicily 2501. 算算式
  6. mysql性能分析工具profiling_Mysql系列(十)—— 性能分析工具profiling
  7. 《C语言解惑》—— 第一篇 C语言编程中的对与错
  8. 【Boost】boost库asio详解9——TCP的简单例子2
  9. lintcode :Integer to Roman 整数转罗马数字
  10. 单片机编程文件组织形式(个人编程规范)
  11. HttpModule的认识与深入理解
  12. 怎么安装python3.7 setuptools与pip_如何安装python到setuptools、pip工具安装
  13. Java逆序列化报错serialVersionUID不同
  14. java 8 Optional解决空指针异常问题
  15. Android应用开发进阶,2021Android最新大厂面试真题
  16. 记录一次大创项目配置服务器的心得
  17. 如何查看ubuntu的内核版本和发行版本号?
  18. 计算机故障维修要遵循什么原则,超级实用的六条法则教你快速搞定电脑故障维修!...
  19. 【优化求解】基于猫群算法CSO求解最优目标matlab源码
  20. LINUX服务介绍(清晰版)

热门文章

  1. CVPR 2019 | 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet
  2. 机器学习中数据清洗预处理入门完整指南
  3. linux 火狐无法执行二进制文件_Linux无法执行二进制文件
  4. Python爬虫速度很慢?并发编程了解一下吧
  5. 从入门到精通!零基础上手车辆目标跟踪与计数
  6. 收藏 | 程序员必须掌握哪些算法?
  7. 智能语音技术新发展与发展趋势
  8. 从零开始用Python搭建超级简单的点击率预估模型
  9. 文本分类(下) | 卷积神经网络(CNN)在文本分类上的应用
  10. java 平均分配算法_java 分配算法