TCP通信程序

Posted lsswudi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP通信程序相关的知识,希望对你有一定的参考价值。

 

TCP通信原理
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象, 从而在通信的两端形成网络虚拟链路,
一旦建立 了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。


Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信
Java为客户端提供了Socket谈,为服务器端提供了ServerSocket类
技术图片

 

TCP发送数据


TCP发送数据的步骤
①创建客户端的Socket对象(Socket)
  Socket(String hqst, int port)
②获取输出流,写数据
  OutputStream getOutputStream0
③释放资源
  void close(

public class Socket
extends Object
implements Closeable
该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。
package com.ThreadTest;
/*
    TCP发送数据的步骤
        1:创建客户端的Socket对象(Socket)
        2:获取输出流,写数据
        3:释放资源

 */

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


public class ClientDemo 
    public static void main(String[] args) throws IOException 
//        1:创建客户端的Socket对象(Socket)
//        Socket?(InetAddress address, int port) 创建流套接字并将其连接到指定IP地址的指定端口号。
//    Socket s = new Socket(InetAddress.getByName("192.168.1806"),10000);
//        Socket?(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。
        Socket s = new Socket("192.168.18.6", 10000);

        //获取输出流,写数据
//        Socket类下面的方法 public OutputStream getOutputStream?() throws IOException返回此套接字的输出流。
        OutputStream os = s.getOutputStream();
        os.write("我来了,hello,TCP".getBytes());

        //释放资源
        s.close();
    

TCP接收数据

ServerSocket?(int port)
创建绑定到指定端口的服务器套接字。

TCP接收数据的步骤
①创建服务 器端的Socket对象(ServerSocket)
  ServerSocket(int port)
②监听客户端连接, 返回一个Socket对象
  Socket accept()
③获取输入流, 读数据,并把数据显示在控制台
  InputStream getInputStream()
④释放资源
  void close()

package com.ThreadTest;
/*
TCP接收数据的步骤

        1:创建服务器端的Socket对象(ServerSocket)
        2:获取输入流,读数据,并把数据显示在控制台
        3:释放资源

 */

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 
//        1:创建服务器端的Socket对象(ServerSocket)
//        ServerSocket?(int port) 创建绑定到指定端口的服务器套接字。
        ServerSocket ss = new ServerSocket(10000);

//        2 accept?() 侦听要连接到此套接字并接受它。
        Socket s = ss.accept();
//        3:获取输入流,读数据,并把数据显示在控制台
        InputStream is = s.getInputStream();
        byte[] bys = new byte[1024];
        int len;
        while ((len = is.read(bys)) != -1) 
            System.out.println("数据是:" + new String(bys, 0, len));
        
        //4 释放资源
        ss.close();


    

 

以上是关于TCP通信程序的主要内容,如果未能解决你的问题,请参考以下文章

TCP通信是2路通信吗?

TCP通信

QT创建TCP Socket通信

网络编程--02 TCP

基于QT的TCP通信服务

00106_TCP通信