黑马程序员——JAVA基础——网络编程

———–android培训、java培训、java学习型技术博客、期待与您交流!————

TCP传输

使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

package com.itheima;

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

//客户端
class TcpClient{
    public static void main(String[] args) throws Exception
    {
        //创建客户端的socket服务,指定目的主机和端口
        Socket s = new Socket("192.163.1.80",8080);

        //为了发送数据,应该获取socket流中的输出流
        OutputStream out = s.getOutputStream();

        out.write("服务端,你好".getBytes());

        //获取服务端 返回来的数据
        InputStream in = s.getInputStream();

        //设定缓冲区
        byte[] buf = new byte[1024];
        int len = in.read(buf);

        //打印服务端返回来的数据
        System.out.println(new String(buf,0,len));

        s.close();
    }
}

//服务器端
class TcpServer{
    public static void main(String[] args) throws Exception{

        //建立服务端的socket服务,并监听一个窗口
        ServerSocket ss = new ServerSocket(8080);

        //通过accept方法获取链接过来的客户端对象
        Socket s = ss.accept();

        //获取并打印IP地址
        String ip = s.getInetAddress().getHostAddress();
        System.out.println(ip+"..............connected");

        //获取客户端发送过来的数据,要使用客户端对象的读取流来读取数据
        InputStream in = s.getInputStream();

        //设定缓冲区
        byte[] buf = new byte[1024];
        int len = in.read(buf);

        //打印客户端发送过来的数据
        System.out.println(new String(buf,0,len));

        //为了发送数据,应该获取socket流中的输出流
        OutputStream out = s.getOutputStream();

        out.write("客户端,你好".getBytes());

        s.close();

        ss.close();
    }
}

你可能感兴趣的:(java学习笔记)