用TCP制作简易聊天

简易的java聊天分为客户端,和服务端。直接上代码。
客户端
1.首先要知道服务端的ip和端口号;
2.创建一个socket连接
3.发送消息到io流

package com.shxp.yuan.tcp;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.Socket;

/*客户端*/
public class TcpClientDemo1 {
    public static void main(String[] args) {
        InetAddress ip=null;
        Socket socket = null;
        OutputStream os = null;
        try {
            /* 1.首先要知道服务器Ip地址,和端口号*/
             ip = InetAddress.getByName("127.0.0.1");
            int port = 9999;
            /* 2.创建一个socket连接*/
             socket = new Socket(ip,port);
            /*3.发送消息IO流*/
             os = socket.getOutputStream();
            os.write("这1".getBytes());
        }catch (Exception e){
        }finally {
            if(os!=null){
                try {
                    os.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
            if(socket!=null){
                try {
                    socket.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

服务端
1.服务端首先要有自己的ip和端口号
2.创建一个服务端socket
3.等待客户端连接
4.创建一个Io流,去读取客户端io流
5.创建一个byteArrayOutputStream(管道流);
6.新建一个byte类型长度为1024数组
7.新建一个Int类型的整数
8.循环读取io流的内容直到字节!=-1

package com.shxp.yuan.tcp;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*服务端*/
public class TcpServiceDemo01 {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        Socket socket = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try {
            /*1.要有一个地址*/
            serverSocket =  new ServerSocket(9999);//新创建一个服务端端口号
            /*2.等待客户端连接过来*/
            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("======"+len+"====="+is.read(buffer));
            }
            System.out.println("======"+baos.toString());
        }catch (Exception e){

        }finally {
            if(is!=null){
                try {
                    is.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
            if(socket!=null){
                try {
                    socket.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值