黑马程序员_网络编程
来源:互联网 发布:网络出租屋怎么赚钱的 编辑:程序博客网 时间:2024/05/21 11:52
一、UDP与TCP区别
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
二、UDP编程
客户端
从键盘录入内容,发往服务器端
public static void main(String []args) throws Exception{
DatagramSocket ds = new DatagramSocket();
BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line=bfr.readLine())!=null){
if("886".equals(line)){
break;
}
byte[] by = line.getBytes();
DatagramPacket dp = new DatagramPacket(by,by.length,InetAddress.getByName("127.0.0.1"),10001);
ds.send(dp);
}
ds.close();
} 服务器端
public static void main(String []args)throws Exception{
DatagramSocket ds = new DatagramSocket(10001);
while(true){
byte[] by = new byte[1024];
DatagramPacket dp = new DatagramPacket(by,by.length);
ds.receive(dp);
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(data);
}
ds.close();
}
三、TCP编程
客户端
public static void main(String[] args) {
Socket socket = null;
InputStream is = null;
OutputStream os = null;
String serverIP = "127.0.0.1";//服务器端IP地址
int port = 10000; //服务器端端口号
String data = "Hello";//发送内容
try {
socket = new Socket(serverIP,port); //建立连接
os = socket.getOutputStream();//发送数据
os.write(data.getBytes());
is = socket.getInputStream(); //接收数据
byte[] b = new byte[1024];
int n = is.read(b);
System.out.println("服务器反馈:" + new String(b,0,n));//输出反馈数据
} catch (Exception e) {
e.printStackTrace(); //打印异常信息
}finally{
try {
//关闭流和连接
is.close();
os.close();
socket.close();
} catch (Exception e2) {}
}
}
服务器端
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
OutputStream os = null;
InputStream is = null;
int port = 10000; //监听端口号
try {
serverSocket = new ServerSocket(port);//建立连接
socket = serverSocket.accept(); //获得连接
is = socket.getInputStream(); //接收客户端发送内容
byte[] b = new byte[1024];
int n = is.read(b);
//输出
System.out.println("客户端发送内容为:" + new String(b,0,n));
//向客户端发送反馈内容
os = socket.getOutputStream();
os.write(b, 0, n);
} catch (Exception e) {
e.printStackTrace();
}finally{
try{
//关闭流和连接
os.close();
is.close();
socket.close();
serverSocket.close();
}catch(Exception e){}
}
}
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- android java 判断某张表是否存在
- BAT遍历所有文件夹及其子文件夹
- dalvik虚拟机解释器高频解释代码的加速
- Dev 7.3.6中关于GridControl的导出和过滤问题
- java获取硬盘使用情况
- 黑马程序员_网络编程
- 企业CRM选型的两大核心
- 基于android手机的3G+GPS远程控制模型车工程-arduino单片机编程
- ORACLE中主键约束跟唯一索引之间的关联关系
- mongoDB配制及学习
- VC定时器的用法:SetTimer和Ontimer
- log4j无法打印日志的问题
- cookie跨域删除存放
- Java拾遗]Java对象大小探究