首页 > 其他分享 >练习——简单的TcpCS了解基本概念

练习——简单的TcpCS了解基本概念

时间:2023-05-04 19:11:35浏览次数:33  
标签:java socket 练习 try IOException import TcpCS null 基本概念

package com.net;

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

//客户端
@SuppressWarnings({"all"})
public class TCPClient_ {
    public static void main(String[] args) {

        Socket socket = null;
        OutputStream os = null;

        try {
            //1.知道服务器的地址
            InetAddress inetAddress = InetAddress.getByName("127.0.0.1" );
            int port = 6987;
            //2.创建一个Socket连接
            socket = new Socket(inetAddress , port);
            //3.发送消息
            os = socket.getOutputStream();
            os.write("真不错,住在山里面真不错!".getBytes());

        } catch (Exception e) {
            e.printStackTrace();
        } finally { //注意先开后关原则
            if (os   != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}


package com.net;

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

//服务端
@SuppressWarnings({"all"})
public class TCPServer_ {
    public static void main(String[] args) {

        ServerSocket serverSocket = null;
        Socket socket = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;



        try {
            //1.得有一个端口地址
            serverSocket = new ServerSocket(6987);
            //2.监听是否有连接请求,可以用循环持续监听
            //while (true) {
                socket = serverSocket.accept();
                //3.读取客户端信息
                is = socket.getInputStream();

                //管道流,这样做可以避免中文的字节流在中间断开而产生乱码
                baos = new ByteArrayOutputStream();
                byte[] buffer = new byte[1024];
                int len;
                while ((len = is.read(buffer)) != -1) {
                    baos.write(buffer, 0, len);
                }

                System.out.println(baos.toString());


        } catch (IOException e) {
            e.printStackTrace();
        } finally { //注意先开后关原则
            if (baos != null){
                try {
                    baos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

标签:java,socket,练习,try,IOException,import,TcpCS,null,基本概念
From: https://www.cnblogs.com/Q1u-ovo/p/17372232.html

相关文章

  • ensp练习华为USG5500防火墙的使用
    华为的USG5500防火墙,默认内部有三个区域(trust/untrust/dmz)。我们主要需要配置端口IP和这三个区域的信息,以及路由。client3的配置如下:client1配置如下:client2配置如下:server1配置如下: server2配置如下:  AR1的配置如下:AR2的配置如下: USG5500的配置,我写一......
  • ActiveMQ学习(一)——MQ的基本概念…
    1)队列管理器队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。2)消息在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用向其它应用发出的处理请求等都可以作为消息。......
  • #10024. 「一本通 1.3 练习 3」质数方阵
    loj题目传送门一本通题目传送门洛谷传送门原题是UVA835,是多测思路肯定是要剪枝的呀众所周知,dfs的路径像树一样显而易见,树的某一层的节点越少,他的下面的分支就越少于是我们考虑改变搜索顺序来剪掉更多的分支一个数的末位要是\(0\),那他肯定不是质数。于是我们先从所有数的......
  • Think Python-How to Think Like a Computer Scientist_chapter4_练习 4-3
    #coding=gbkimportmathimportturtlebob=turtle.Turtle()print(bob)defpie(t,r,n):"""画一个包含n个三角形的饼图。t:Turtleobjectr:三角形腰长n:包含几个三角形或几边形"""angle1=180/nangle2=90+angle1y=......
  • 练习——管程法,信号灯法简单的实现生产者消费者模型
    packagecom.thread_;//管程法解决生产者消费者模型publicclassPC1{publicstaticvoidmain(String[]args){SynContainercontainer=newSynContainer();Productorproductor=newProductor(container);Consumerconsumer=newC......
  • [练习记录] 《算法竞赛进阶指南》打卡活动
    89.a^b题目大意给\(a,b,p\)求\(a^b\modp\)。思路可以直接快速幂。当模数\(p\)为\(1\)的时候特判一下。代码lla,b,mod;llqpow(lla,llb){ llres=1; while(b){ if(b&1)res=res*a%mod; a=a*a%mod,b>>=1; } returnres;}in......
  • RocketMQ(一):基本概念
    RocketMQ官方文档地址:RocketMQ官网文档地址。一、什么是RocketMQRocketMQ是一款分布式、队列模型的消息中间件。二、RocketMQ的基本概念2.1、Topic-主题Topic是RocketMQ中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息,通过TopicName来做唯一标识和区......
  • c++打卡练习(19)
    1.问题描述相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8x8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我......
  • C语言--练习
    1、写一个函数输出a的二进制(补码)中1的个数。intcount_(inta){ intcount=0; for(inti=0;i<32;i++) { if(((a>>i)&1)==1) count++; } returncount;}intmain(){ intcount=0; inta=0; scanf("%d",&a); count=count_(a);......
  • java方法的内存及练习
    方法的内存一、方法调用的基本内存原理:Java内存分配栈:方法运行时使用的内存方法进栈运行,运行完毕就出栈堆:newl出来的,都在堆内存中开辟了一个小空间方法区:存储可以运行的class文件本地方法栈:JVM在使用操作系统功能的时候使用和我们开发无关寄存器:给CPU使用和......