java 从零开始,学习笔记之基础入门<网络编程_带QQ模拟功能>(二十)(五)
class ReceiveCLIENT {
public static void main(String[] args) {
//接收发送端发送过来的数据
try {
while(true){
DatagramSocket ds=new DatagramSocket(9009);
byte[] b=new byte[512];
DatagramPacket dp=new DatagramPacket(b, b.length);
ds.receive(dp);
//将接受到的数据包的值打印出来
// dp.getData()取到数据报中的信息返回一个byte[]
System.out.println(new String(dp.getData()).trim());
System.out.println();
Thread.sleep(500);
ds.close();
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
多点广播:一个发送端同时给多个客户端发送数据,多个客户端放入在一个组中,发送端给交换机发送一次数据,在由交换机将数据发送到所在组的多个客户端。
http协议完成浏览器到服务器的信息浏览
package com.ibm.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;
public class HttpServer {
public static void main(String[] args) {
//创建一个服务端的Socket指定客户端链接的端口号9999
try {
ServerSocket server =new ServerSocket(9999);
Socket client = server.accept();
System.out.println("请求进来了");
// //服务端接收客户端的请求信息,遵循的是HTTP协议
// InputStream is = null;
// is = client.getInputStream();
// byte[] b = new byte[1024];
// int len = is.read();
// String str = null;
// while((len=is.read(b))!=-1){
// str = new String(b);
// //str就是客户端请求服务端的http信息
// System.out.println(str);
// }
//采用字符流形式读
InputStream is = client.getInputStream();
Reader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader);
//定义一个字符串接收每行返回的信息
String str = null;
while((str=br.readLine())!=null){
System.out.println(str);
//判断请求客户端请求服务端请求完成 可以判断最后一行的信息
//是否是以Connection: Keep-Alive开头
if(str.startsWith("Connection: Keep-Alive")){
break;
}
}
//采用输出流的形式从服务器端给客户端返回信息
PrintWriter pw = new PrintWriter(client.getOutputStream());
pw.println("
");
");
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.ibm.http;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class HttpServer02 {
static Stringcontent;
public static void main(String[] args) {
boolean flag =false;
String str = null;
String reqfilename = null;
try {
Se