tcp客户端
package cn.itcast.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Demo1_Client {
/**
* 1.客户端
* 创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器
* 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流
* 输入流可以读取服务端输出流写出的数据
* 输出流可以写出数据到服务端的输入流
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
//demo1();
Socket socket = new Socket("127.0.0.1", 9999); //创建Socket
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//对输入流封装
PrintStream ps = new PrintStream(socket.getOutputStream());//对输出流封装
System.out.println(br.readLine()); //读取服务器的内容并打印
ps.println("sss"); //向服务器写出数据
System.out.println(br.readLine());
ps.println("ssss");
socket.close();
}
public static void demo1() throws UnknownHostException, IOException {
Socket socket = new Socket("127.0.0.1", 9999); //创建Socket
InputStream is = socket.getInputStream(); //获取输入流
OutputStream os = socket.getOutputStream(); //获取输出流
byte[] arr = new byte[1024]; //创建字节数组
int len = is.read(arr); //将数据读取到字节数组中
System.out.println(new String(arr,0,len)); //转换成字符串
os.write("ssss?".getBytes()); //将字符串转换成字节数组写到服务器去
byte[] arr2 = new byte[1024];
int len2 = is.read(arr2);
System.out.println(new String(arr2,0,len2));
socket.close();
}
}
tcp服务器
package cn.itcast.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Demo1_Server {
/**
* 2.服务端
* 创建ServerSocket(需要指定端口号)
* 调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket
* 调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流
* 输入流可以读取客户端输出流写出的数据
* 输出流可以写出数据到客户端的输入流
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//demo1();
//demo2();
ServerSocket server = new ServerSocket(9999); //创建服务器
while(true) {
final Socket socket = server.accept(); //接收客户端的请求
new Thread() {
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//对输入流包装
PrintStream ps = new PrintStream(socket.getOutputStream());//对输出流包装
ps.println("aaaaa"); //向客户端写出数据
System.out.println(br.readLine()); //读取并打印
ps.println("aaaaaa"); //向客户端再次写出数据
System.out.println(br.readLine()); //读取并打印
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
public static void demo2() throws IOException {
ServerSocket server = new ServerSocket(9999); //创建服务器
Socket socket = server.accept(); //接收客户端的请求
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//对输入流包装
PrintStream ps = new PrintStream(socket.getOutputStream());//对输出流包装
ps.println("aaaa"); //向客户端写出数据
System.out.println(br.readLine()); //读取并打印
ps.println("aaaaa"); //向客户端再次写出数据
System.out.println(br.readLine()); //读取并打印
socket.close();
}
public static void demo1() throws IOException {
ServerSocket server = new ServerSocket(9999); //创建服务器
Socket socket = server.accept(); //接收客户端的请求
InputStream is = socket.getInputStream(); //获取输入流
OutputStream os = socket.getOutputStream(); //获取输出流
os.write("aaaa".getBytes()); //将字符串写到客户端
byte[] arr = new byte[1024]; //创建字节数组
int len = is.read(arr); //将数据读取到字节数组中
System.out.println(new String(arr,0,len)); //将数组转换为字符串
os.write("aaa".getBytes()); //将字符串写到客户端
server.close();
socket.close();
}
}
UDP获取数据
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class Demo1_Receive {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(12345);
DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
socket.receive(packet);
byte[] arr = packet.getData();
int len = packet.getLength();
System.out.println(new String(arr,0,len));
socket.close();
}
}
UDP发送数据
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class Demo1_Send {
public static void main(String[] args) throws IOException {
String str = "红鲤鱼与绿鲤鱼与驴";
DatagramSocket socket = new DatagramSocket();
DatagramPacket packet =
new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 12345);
socket.send(packet);
socket.close();
}
}
#