发送和接受tcp

TCP客户端代码:

package cn.hiluna.demo3;

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

/**
 * 实现tcp客户端,连接到服务器端
 * 和服务器实现一次完整的数据交换
 * 实现tcp程序的类java.net.socket
 * 构造方法:
 *      Socket(String host, int port) 传递服务器IP和端口号
 *      注意:构造方法只要运行,就会和服务器进行连接,连接失败,跑出异常
 *
 *  OutputStream    getOutputStream() 返回此套接字的输出流。
 *      作用:将数据输出,输出到服务器
 *
 *  InputStream     getInputStream() 返回此套接字的输入流。
 *      作用:从服务器端读取数据。
 *  客户端服务器数据交换,必须使用套接字对象Socket中获取的IO流,自己new流,不行
 */
public class TCPClient {
    public static void main(String[] args) throws IOException {
        //创建socket对象,用于连接服务器
        Socket socket = new Socket("localhost",6001);
        //通过客户端端的套接字对象Socket对象,获取字节输出流,将数据写向服务器
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("服务器OK".getBytes());

        //拿到服务器给的程序
        InputStream inputStream = socket.getInputStream();
        byte[] data = new byte[1024];
        int length  = inputStream.read(data);
        System.out.println(new String(data,0,length));

        socket.close();
    }
}

TCP服务器端代码:

package cn.hiluna.demo3;

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

/**
 * 实现TCP协议服务器程序
 * 表示服务器程序的类:java.net.ServerSocket
 * 构造方法:
 *      ServerSocket(int port) 创建绑定到特定端口的服务器套接字。
 *
 *  很重要的事情:必须要获得客户端的套接字对象Socket
 *      Socket accept()    侦听并接受到此套接字的连接。
 *
 */
public class TCPServer {
    public static void main(String[] args)throws IOException {
        ServerSocket serverSocket = new ServerSocket(6001);
        //调用服务器套接字对象的方法accept(),侦听并接受到此套接字的连接。
        Socket socket = serverSocket.accept();
        //通过客户端套接字对象,socket获取字节输入流,读取的是客户端发送来的数据
        InputStream inputStream = socket.getInputStream();
        byte[] data = new byte[1024];
        int lenght = inputStream.read(data);
        System.out.println(new String(data,0,lenght));

        //服务器向客户端回送数据,字节输出流,通过客户端套接字对象获取字节输出流
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("收到".getBytes());

        socket.close();
        serverSocket.close();
    }
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇