Java网络通信
一、基本概念
1.网络程序:
能够接受另一台计算机发送过来的数据或者能够向另一台计算机发送数据的程序叫做网络程序。
2.IP
能够在网络中唯一标示一台主机的编号就是IP
3.端口号
16位数字表示
4.协议
进行网络中数据交换(通信)而建立的规则、标准或者约定。
分类:TCP:面相连接的可靠的传输的连接,类似打电话
UDP:是无连接的不可靠的传输协议,类似写信
二、套接字Socket
1.基于UDP的Socket编程
步骤:1.定义码头 Datagram Socket对象ds
2.定义可以用来接受或发送数据的集装箱 DatagramPacket对象dp
3.在码头上用集装箱接收对方发来的数据ds.receive(dp))
或者在码头上把集装箱的数据发送给对方ds.send(dp))
4.关闭码头 ds.close()
基于UDP的socket编程实例——服务器与客户端之间的通信
服务器端
package UDPsocketTest;
import java.net.*;
import java.io.*; //UDP的服务器端
public class TestUDPServer {
public static void main(String[] args)throws Exception{
DatagramSocket ds=new DatagramSocket(5678);//5678是端口号
byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
try{
while(true){
ds.receive(dp);
//从集装箱中取出对方放松过来的数据
ByteArrayInputStream bais=new ByteArrayInputStream(dp.getData());
DataInputStream dis=new DataInputStream(bais);
System.out.println(ds.readLong());
}
}
catch(Exception e){
e.printStackTrace();
ds.close();
}
}
}
客户端
package UDPsocketTest;
import java.net.*;
import java.io.*; //服务器端
public class TestUDPClient {
public static void main(String[] args) throws Exception{
DatagramSocket ds=new DatagramSocket();
long n=1000L;
ByteArrayOutputStream baos=new ByteArrayOutputStream();
DataOutputStream daos=new DataOutputStream(baos);
daos.writeLong(n);
byte[] buf=baos.toByteArray();
DatagramPacket dp=new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",5678));
ds.send(dp);
ds.close();
}
}
Java网络通信的更多相关文章
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所 ...
- java网络通信:异步非阻塞I/O (NIO)
转: java网络通信:异步非阻塞I/O (NIO) 首先是channel,是一个双向的全双工的通道,可同时读写,而输入输出流都是单工的,要么读要么写.Channel分为两大类,分别是用于网络数据的S ...
- Java网络通信初步认知
本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...
- Java 网络通信相关
http://m.blog.csdn.net/xiaojin21cen/article/details/78587541 越下面越底层 , 最后面的都是框架 , 下面的是 编程语言提供的库的 NIO ...
- java网络通信编程
网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设 ...
- java网络通信不止UDP,TCP
预备知识 多线程 实现多线程 线程池 IO流 核心功能就是读和写 扩展功能对什么读写,怎么读写,如何优化读写 网络基础 IP IP规定网络上所有的设备都必须有一个独一无二的IP地址,就好比是邮件上都必 ...
- Java网络通信——XML和JSON
XML(Extensible Markup Language) 定义:一种可扩展的标记性语言 XML有丰富的编码工具,比如Dom4j.JDom等. JSON(JavaScript Object Not ...
- java网络通信之非阻塞通信
java中提供的非阻塞类主要包含在java.nio,包括: 1.ServerSocketChannel:ServerSocket替代类,支持阻塞与非阻塞: 2.SocketChannel:Socket ...
- java 网络通信传输层协议——UDP和TCP
本文原文由作者“zskingking”发表于:jianshu.com/p/271b1c57bb0b,本次收录有改动. 1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯网专注的即时通 ...
随机推荐
- window--窗口
创建窗口 1. 通过标签窗口窗口. <div id="win" class="easyui-window" title="My Window&q ...
- CSS定位小技巧
CSS定位Static 默认定位Relative 相对定位:left 和topposition: relative;/*相对定位*/ left:40px;/*在原来的位置向右移动*/ top:100p ...
- bzoj 1054: [HAOI2008]移动玩具 bfs
1054: [HAOI2008]移动玩具 Time Limit: 10 Sec Memory Limit: 162 MB[Submit][Status][Discuss] Description 在 ...
- CSS笔记(十二)CSS3之2D和3D转换
参考:http://www.w3school.com.cn/css3/css3_2dtransform.asp 2D Transform 方法 函数 描述 matrix(n,n,n,n,n,n) 定义 ...
- XAF应用开发教程(一) 创建项目
XAF是DevExpress公司的快速开发框架,全称eXpress Application Framework,是企业信息系统的开发利器,快速开发效果显著,在.net框架中,笔者至今没有找到一款可以与 ...
- 查询计划Hash和查询Hash
查询计划hash和查询hash 在SQL Server 2008中引入的围绕执行计划和缓冲的新功能被称为查询计划hash和查询hash.这是使用针对查询或查询计划的算法来生成二进制hash值的二进制对 ...
- iOS - UISplitViewController
前言 NS_CLASS_AVAILABLE_IOS(3_2) @interface UISplitViewController : UIViewController @available(iOS 3. ...
- eclipse xml 注释快捷键
注释:CTRL + SHIFT + / 撤销注释:CTRL + SHIFT + \
- hdu 4055 && hdu 4489 动态规划
hdu 4055: 一开始我想的递推方向想得很复杂,看了别人的博客后才醍醐灌顶: 参照他的思路和代码: #include<cstdio> #include<cstring> # ...
- linux 试题
1. 在Linux系统中,以 文件 方式访问设备 . 2. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 . 3. 前台起动的进程使用 C ...