专栏首页陶士涵的菜地[javaSE] 网络编程(TCP通信)

[javaSE] 网络编程(TCP通信)

客户端A与服务端建立通信,服务端获取到客户端A的Socket对象,通过这个通路进行通信

客户端:

获取Socket对象,new出来,创建客户端的Socket服务,构造参数:Sting主机,int 端口

调用Socket对象的getOutputStream()方法,获取输出流OutputStream对象

调用OutputStream对象的write()方法,参数:byte[]字节数组

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

/**
 * 客户端
 * @author taoshihan
 *
 */
public class Client {
    public static void main(String[] args) throws Exception, IOException {
        Socket socket=new Socket(InetAddress.getLocalHost(), 10003);
        OutputStream outputStream=socket.getOutputStream();
        outputStream.write("Hello TCP".getBytes());
        
    }
}

服务端:

获取ServerSocket对象,new出来,构造参数:int端口

调用ServerSocket对象的accept()方法,获取到Socket对象,阻塞式的

调用Socket对象的getInputStream()方法,获取输入流InputStream对象

读取输入流,数据量不大,不循环了直接调用InputStream对象的read()方法,参数:byte[]数组

调用Socket对象的getInetAddress()方法,获取到InetAddress对象

调用Socket对象的close()方法,关闭客户端

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

/**
 * 服务端
 * 
 * @author taoshihan
 * 
 */
public class Server {
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(10003);
        while (true) {
            Socket socket = serverSocket.accept();
            InputStream inputStream = socket.getInputStream();

            byte[] buf = new byte[1024];
            int len = inputStream.read(buf);

            InetAddress ip = socket.getInetAddress();
            socket.close();
            System.out.println("来自" + ip.getHostAddress() + "说:"
                    + new String(buf, 0, len));
        }

    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [javaSE] 网络编程(TCP服务端客户端互访阻塞)

    获取Socket对象,new出来,构造参数:String的ip地址,int的端口号

    陶士涵
  • [javaEE] JDBC快速入门

    JDBC:Java Data Base Connectivity java数据库连接

    陶士涵
  • [android] 新闻客户端引入SlidingMenu

    下载SlidingMenu,https://github.com/jfeinstein10/SlidingMenu

    陶士涵
  • [javaSE] 网络编程(TCP服务端客户端互访阻塞)

    获取Socket对象,new出来,构造参数:String的ip地址,int的端口号

    陶士涵
  • 编写自己的简单服务器

    这里记录一个类似tomcat的简单服务器的编写过程,帮助了解使用到的主要技术及原理

    Vincent-yuan
  • Java知识点——网络编程(如何网络编程和多线程实现tcp基础多文件交换功能)

    网络通信协议是要求双方传递数据的计算机必须遵守的,按照对应的网络传输协议,才可以进入数据的交互和传递。

    用户7073689
  • java与as3的socket通信

    as3 与java 都提供了Socket类用于网络通信, 但两者的使用也有较大的不同. 为了方便两者的通信, 我在做了一些实验的基础上, 写下获得的经验,以免忘...

    py3study
  • python:socket通信

    import socket,os server=socket.socket() server.bind(("localhost",9999)) server.l...

    py3study
  • GitHub 下载神器强势回归!

    一个「身价」7.5万颗星的GitHub项目,从受热捧,到被起诉下架,再到引发社区热议。GitHub 标星 119K+!这些神器仅需一行代码即可下载全网视频!

    杰哥的IT之旅
  • GitHub 捍卫开发者!重新上架 7.2 万星开源项目 youtube-dl

    被封 25 天后的 youtube-dl 终于重新上架啦!虽然官司还要继续,但 GitHub 已站在开源作者一方!

    Rocky0429

扫码关注云+社区

领取腾讯云代金券