Java基础24-网络编程

1.网络编程入门

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IntelDemo {
    public static void main(String[] args) throws UnknownHostException {
        InetAddress inetAddress= InetAddress.getByName("192.168.199.223");
        //InetAddress inetAddress= InetAddress.getByName("qh12018010478.ucredit.com");
        System.out.println("IP:"+inetAddress.getHostAddress());
        System.out.println("name:"+inetAddress.getHostName());
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.UDP通信程序

在这里插入图片描述
在这里插入图片描述

package intel;

import java.io.IOException;
import java.net.*;

public class SendDemo {
    public static void main(String[] args) throws SocketException,UnknownHostException {
        DatagramSocket socket = new DatagramSocket();
        byte[] bytes = "hello,124,world".getBytes();
        DatagramPacket packet = new DatagramPacket(bytes,bytes.length,InetAddress.getByName("192.168.199.223"),10086);
        try {
            socket.send(packet);
        } catch (IOException e) {
            e.printStackTrace();
        }
        socket.close();

    }
}

在这里插入图片描述

package intel;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceiveDemo {
    public static void main(String[] args) throws SocketException {
        DatagramSocket socket2 = new DatagramSocket(10086);
        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length);
        try {
            socket2.receive(datagramPacket);
        } catch (IOException e) {
            e.printStackTrace();
        }
        byte[] bytes1 = datagramPacket.getData();
        System.out.println(new String(bytes1,0,datagramPacket.getLength()));
        socket2.close();
    }
}

在这里插入图片描述

package intel;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class SendTest {
    public static void main(String[] args)throws SocketException,IOException {
        DatagramSocket socket2 = new DatagramSocket();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = bufferedReader.readLine()) != null){
            if(line.equals("886")){
                break;
            }
            byte[] bytes = line.getBytes();
            DatagramPacket packet2 = new DatagramPacket(bytes,bytes.length, InetAddress.getByName("192.168.199.223"),11080);
            socket2.send(packet2);
        }
        socket2.close();

    }
}

package intel;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceiverTest {
    public static void main(String[] args) throws SocketException,IOException {
        DatagramSocket socket3= new DatagramSocket(11080);
        while (true) {
            byte[] bytes = new byte[1024];
            DatagramPacket data1 = new DatagramPacket(bytes, bytes.length);
            socket3.receive(data1);
            byte[] s = data1.getData();
            System.out.println(new String(s, 0, data1.getLength()));
        }

    }
}

3. TCP通信程序

在这里插入图片描述
在这里插入图片描述

package intel;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class ClientDemo {
    public static void main(String[] args)throws IOException {
        Socket socket = new Socket("192.168.199.223",12080);
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("fsf124".getBytes());
        socket.close();
    }
}

在这里插入图片描述

package intel;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(12080);
        Socket s = serverSocket.accept();
        InputStream is = s.getInputStream();
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes,0,len));
        s.close();
        serverSocket.close();

    }
}

在这里插入图片描述

package intel;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class ClientDemo {
    public static void main(String[] args)throws IOException {
        Socket socket = new Socket("192.168.199.223",12080);
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("fsf124".getBytes());
        InputStream in = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len =in.read(bytes);
        System.out.println("客户端接收到的反馈:"+new String(bytes,0,len));
        socket.close();
    }
}

package intel;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(12080);
        Socket s = serverSocket.accept();
        InputStream is = s.getInputStream();
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes,0,len));
        OutputStream oss = s.getOutputStream();
        oss.write("服务端已接收".getBytes());
        s.close();
        serverSocket.close();

    }
}

在这里插入图片描述

package intel;

import java.io.*;
import java.net.Socket;

public class ClientTest {
    public static void main(String[] args) throws IOException {
        Socket ss = new Socket("192.168.199.223",1111);
        OutputStream oos = ss.getOutputStream();
        String line;
        BufferedReader bbr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bbf = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
        while ((line = bbr.readLine()) != null){
            if(line.equals("886")){
                break;
            }
            bbf.write(line);
            bbf.newLine();
            bbf.flush();
        }
        ss.close();

    }
}

package intel;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(1111);
        Socket s = serverSocket.accept();
        BufferedReader bbs = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String line;
        while ((line = bbs.readLine()) != null){
            System.out.println(line);
        }
        serverSocket.close();
    }
}

在这里插入图片描述`

package intel;

import java.io.*;
import java.net.Socket;

public class ClientTest {
    public static void main(String[] args) throws IOException {
        Socket ss = new Socket("192.168.199.223",1111);
        OutputStream oos = ss.getOutputStream();
        String line;
        BufferedReader bbr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bbf = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
        while ((line = bbr.readLine()) != null){
            if(line.equals("886")){
                break;
            }
            bbf.write(line);
            bbf.newLine();
            bbf.flush();
        }
        ss.close();

    }
}

package intel;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(1111);
        Socket s = serverSocket.accept();
        BufferedReader bbs = new BufferedReader(new InputStreamReader(s.getInputStream()));
        BufferedWriter bbw = new BufferedWriter(new FileWriter("xaa.txt"));
        String line;
        while ((line = bbs.readLine()) != null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        bbw.close();
        serverSocket.close();
    }
}

在这里插入图片描述

package intel;

import java.io.*;
import java.net.Socket;

public class ClientTest1 {
    public static void main(String[] args) throws IOException {
        Socket ss = new Socket("192.168.199.223",1234);
        BufferedReader bbs = new BufferedReader(new FileReader("xaa.txt"));
        BufferedWriter bbw = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
        String line;
        while((line = bbs.readLine())!=null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        bbs.close();
        ss.close();
    }
}

package intel;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest1 {
    public static void main(String[] args)throws IOException {
        ServerSocket ss = new ServerSocket(1234);
        Socket ss1 = ss.accept();
        BufferedReader bbs = new BufferedReader(new InputStreamReader(ss1.getInputStream()));
        BufferedWriter bbw = new BufferedWriter(new FileWriter("bb.txt"));
        String line;
        while((line = bbs.readLine()) != null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        bbw.close();
        ss.close();
    }
}

在这里插入图片描述

package intel;

import java.io.*;
import java.net.Socket;

public class ClientTest1 {
    public static void main(String[] args) throws IOException {
        Socket ss = new Socket("192.168.199.223",1288);
        BufferedReader bbs = new BufferedReader(new FileReader("xaa.txt"));
        BufferedWriter bbw = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
        String line;
        while((line = bbs.readLine())!=null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        ss.shutdownOutput();
        BufferedReader bb2 = new BufferedReader(new InputStreamReader(ss.getInputStream()));
        String line1 = bb2.readLine();
        System.out.println("客户端接收到的服务端反馈:"+line1);
        bbs.close();
        ss.close();
    }
}

package intel;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest1 {
    public static void main(String[] args)throws IOException {
        ServerSocket ss = new ServerSocket(1288);
        Socket ss1 = ss.accept();
        BufferedReader bbs = new BufferedReader(new InputStreamReader(ss1.getInputStream()));
        BufferedWriter bbw = new BufferedWriter(new FileWriter("b3b.txt"));
        String line;
        while((line = bbs.readLine()) != null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        BufferedWriter bb = new BufferedWriter(new OutputStreamWriter(ss1.getOutputStream()));
        bb.write("文件上传成功");
        bb.close();
        bbw.close();
        ss.close();
    }
}

在这里插入图片描述

package intel;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest2 {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(1299);
        while (true) {
            Socket socket = serverSocket.accept();
            Thread thread = new Thread(new ServerThread(socket));
            thread.start();
        }
    }
}
package intel;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerThread implements Runnable{
    private Socket s;
    public ServerThread(Socket s){
        this.s =s;
    }
    @Override
    public void run(){
        try {
            BufferedReader bbs = new BufferedReader(new InputStreamReader(s.getInputStream()));
            int count =1;
            File file = new File("test"+count+".txt");
            while (file.exists()){
                count++;
                file = new File("test"+count+".txt");
            }
            BufferedWriter bbw = new BufferedWriter(new FileWriter(file));
            String line;
            while ((line = bbs.readLine()) != null) {
                bbw.write(line);
                bbw.newLine();
                bbw.flush();
            }
            BufferedWriter bb = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            bb.write("文件上传成功");
            bb.close();
            bbw.close();
            s.close();
        }catch (IOException e){
            e.printStackTrace();
        }


    }

}

package intel;

import java.io.*;
import java.net.Socket;

public class ClientServer2 {
    public static void main(String[] args) throws IOException {
        Socket ss = new Socket("192.168.199.223",1299);
        BufferedReader bbs = new BufferedReader(new FileReader("xaa.txt"));
        BufferedWriter bbw = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
        String line;
        while((line = bbs.readLine())!=null){
            bbw.write(line);
            bbw.newLine();
            bbw.flush();
        }
        ss.shutdownOutput();
        BufferedReader bb2 = new BufferedReader(new InputStreamReader(ss.getInputStream()));
        String line1 = bb2.readLine();
        System.out.println("客户端接收到的服务端反馈:"+line1);
        bbs.close();
        ss.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于Java Socket网络编程的问题。 Java Socket网络编程Java语言中常用的网络通信技术之一,它可以实现客户端与服务端之间的通信,常用于开发网络应用程序、网络游戏等。下面我们来看一个基于Java Socket网络编程的应用实例。 假设我们有一个简单的聊天室应用程序,它由一个服务端和多个客户端组成。服务端负责接收客户端连接请求,并将客户端发送的消息广播给所有连接到服务端的客户端,客户端负责向服务端发送消息并接收来自服务端的消息。 1. 服务端实现 首先,我们需要编写服务端的代码。服务端需要监听指定的端口,等待客户端的连接请求,并在接收到连接请求为每个客户端创建一个独立的线程进行处理。以下是服务端的代码示例: ```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; boolean listening = true; try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(-1); } while (listening) { new ServerThread(serverSocket.accept()).start(); } serverSocket.close(); } } class ServerThread extends Thread { private Socket socket = null; public ServerThread(Socket socket) { super("ServerThread"); this.socket = socket; } public void run() { try { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { out.println(inputLine); } out.close(); in.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 2. 客户端实现 接下来,我们需要编写客户端的代码。客户端需要连接到服务端指定的端口,并在连接成功后启动一个单独的线程用于接收来自服务端的消息。以下是客户端的代码示例: ```java import java.io.*; import java.net.*; public class Client implements Runnable { private static Socket socket = null; public static void main(String[] args) throws IOException { String hostName = "localhost"; int portNumber = 4444; try { socket = new Socket(hostName, portNumber); } catch (UnknownHostException e) { System.err.println("Don't know about host " + hostName); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to " + hostName); System.exit(1); } BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); new Thread(new Client()).start(); String userInput; while ((userInput = stdIn.readLine()) != null) { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.println(userInput); if (userInput.equals("exit")) { break; } } socket.close(); } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Server: " + inputLine); } in.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上就是一个简单的基于Java Socket网络编程的聊天室应用程序的实现。在实际开发中,我们可以根据具体需求对代码进行修改和优化,使其更符合实际业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值