程序员

java笔记--网络编程

作者:admin 2021-04-22 我要评论

网络编程 查看本机IP地址在控制台输入:ipconfig 检查网络是否连通在控制台输入:ping 空格 IP地址 localhost代表本机地址 客户端 Socket:实现客户端套接字套接字...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

网络编程

查看本机IP地址,在控制台输入:ipconfig
检查网络是否连通,在控制台输入:ping 空格 IP地址
localhost代表本机地址
客户端
Socket:实现客户端套接字,套接字是两台机器间通信的端点

Socket(String host,int port);//String host:IP地址//int port:服务器的端口号
getOutputStream();//返回此套接字的输出流
getInputStream ();//返回此套接字的输入流
close();//关闭此套接字
shutdownOutput;//禁用此套接字的输出流

服务器端
ServerSocket:服务器端

ServerSocket(int port);
accept();//监听并接受到此套接字的连接

客户端

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

public class Kehuduan {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("D:\\1.jpg");
        Socket socket=new Socket("192.168.10.30",8888);
        OutputStream os=socket.getOutputStream();
        int len=0;
        byte[] bytes=new byte[1024];
        while((len=fis.read(bytes))!=-1){
            os.write(bytes,0,len);
        }
        socket.shutdownOutput();
        InputStream is = socket.getInputStream();
        while((len=is.read(bytes))!=-1){
            System.out.println(new String(bytes,0,len));
        }
        fis.close();
        socket.close();
    }
}

服务器

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

public class Fuwuqi {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(8888);
        Socket s = serverSocket.accept();
        InputStream is = s.getInputStream();
        File file=new File("D:\\1.jpg");
        if(!file.exists()){
            file.mkdir();
        }
        FileOutputStream fos=new FileOutputStream("E:\\"+System.currentTimeMillis());
        int len=0;
        byte[] bytes=new byte[1024];
         while((len=is.read(bytes))!=-1){
             fos.write(bytes);
         }
        OutputStream os = s.getOutputStream();
         os.write("上传成功".getBytes());
         fos.close();
         serverSocket.close();
    }
}

BS是浏览器和服务器结构,一般指B/S结构

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

public class Demo04 {//这是模拟服务器
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(8888);
        while (true){//读取图片,每读取一次图片,建立一个新线程
            Socket socket=serverSocket.accept();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try{
                    InputStream is=socket.getInputStream();

                    BufferedReader br=new BufferedReader(new InputStreamReader(is));
                    String s = br.readLine();
                    Systenm.out.println(line);//输出一下请求的路径
                    String[] arr=s.split(" ");
                    String htmlpath=arr[1].substring(1);
                    FileInputStream fis=new FileInputStream(htmlpath);
                    OutputStream os=socket.getOutputStream();
                    //使用HTTP协议响应头,固定格式
                    os.write("HTTP/1.1 200 OK\r\n".getBytes());
                    os.write("Content-Type:text/html\r\n".getBytes());
                    //必须写入空行,否则浏览器不解析
                    os.write("\r\n".getBytes()) ;
                    int len=0;
                    byte[] bytes=new byte[1024];
                    while ((len=fis.read(bytes))!=-1){
                        System.out.println(new String(bytes,0,len));
                    }
                    fis.close();
                    os.close();
                    socket.close();
                }catch (IOException e){
                        System.out.println(e);
                    }
                }
            }).start();

        }
    }
}
;原文链接:https://blog.csdn.net/kanbujianwolue/article/details/115373965

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 天津智慧物联赛道明星结营丨创业不孤独

    天津智慧物联赛道明星结营丨创业不孤独

  • 阿里新零售赛道明星结业,群星集结相伴

    阿里新零售赛道明星结业,群星集结相伴

  • 教育行业优质解决方案分享【智慧校园解

    教育行业优质解决方案分享【智慧校园解

  • Excelize 2.4.0 正式版发布, 新增 152

    Excelize 2.4.0 正式版发布, 新增 152

腾讯云代理商
海外云服务器