老生常谈…对于大佬们根本都不用看的博客!
对于像我这种菜鸡还是得一步一步的来!如果有错误请大佬们指点指点!
网络编程简单实战
JAVA版的TCP编程
服务器
public class Server {
public static void main(String[] args) throws IOException {
//创建服务器socket对象作为一个接收方
ServerSocket serverSocket = new ServerSocket(857);
Socket socket = serverSocket.accept();
//从客户端拿去数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
System.out.println("服务器收到的信息:" + new String(buffer, 0, len));
}
//将数据发送给客户端
OutputStream outputStream = socket.getOutputStream();
outputStream.write(("LoveLive").getBytes());
socket.close();
serverSocket.close();
}
}
客户端
public class Client {
public static void main(String[] args) throws IOException {
//创建socket对象
Socket socket = new Socket("127.0.0.1", 857);
//输出数据给服务器端
OutputStream outputStream = socket.getOutputStream();
outputStream.write("start!!!!!!!come on".getBytes());
socket.shutdownOutput();
//从服务器端拿去数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
System.out.println("客户端收到的信息:" + new String(buffer, 0, len));
}
socket.close();
}
}
先运行服务器,后运行客户端,如果没有启动服务器,客户端就找不到服务器了。 输出结果如图所示:
JAVA版的UDP编程
接收方
public class Server {
public static void main(String[] args) throws IOException {
// 创建接收端的DatagramSocket对象
DatagramSocket ds = new DatagramSocket(7897);
// 创建DatagramPacket对象,接收数据。
byte[] buffer = new byte[1024];
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
// 将ds接受的数据放入到dp中
ds.receive(dp);
// 解析数据
byte[] data = dp.getData();
int length = dp.getLength();
System.out.println(new String(data, 0, length));
ds.close();
}
}
发送方
public class Client {
public static void main(String[] args) throws IOException {
// 创建发送端的DatagramSocket对象。
DatagramSocket ds = new DatagramSocket();
// 创建数据
String message = "LoveLive发送喽!!!";
byte[] bytes = message.getBytes(StandardCharsets.UTF_8);
//打包
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 7897);
//发送数据
ds.send(dp);
ds.close();
}
}
启动双方后,接受方的结果如图所示:
总结
这只是对上一篇文章的进行代码简单编程!
不过这个是服务器(接收方)和客户端(发送方)都在本地运行的,也可以在同一个局域网下运行只要给对ip和端口就可以。如果是不同的网络,需要将服务器部署在具有公网IP的服务器上,然后用客户端访问这个公网IP+端口即可成功!切记公网IP的服务器一定要打开端口,否则无法访问到! 如果想要了解更深刻,可以学一学计算机网络的课程!