java tcp 聊天_Java下Socket部分实现TCP聊天

服务器端

1.服务器端创建好ServerSocket的端口 并处于监听状态

2.使用accept()方法使端口和客户端建立连接

3.读取客户端的消息

4.利用管道流ByteArrayOutputStream进行获取

客户端

1.需要连接的服务器的IP地址和端口号信息

2.使用Socket类传入所需要连接的IP地址和端口号信息

3.向服务端发送信息

服务器端代码部分

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;

//服务端

public class TcpServerDemo02 {

public static void main(String[] args) throws IOException {

ByteArrayOutputStream bao=null;

InputStream is=null;

Socket socket=null;

ServerSocket serverSocket=null;

try {

//1.服务器的地址

serverSocket=new ServerSocket(9999);

//2.等待客户端的连接

socket=serverSocket.accept();

//3.读取客户端的信息

is=socket.getInputStream();

//管道流包装

bao=new ByteArrayOutputStream();

byte[]buffer=new byte[1024];

int len;

while((len=is.read(buffer))!=-1){

bao.write(buffer,0,len);

}

//获取到的信息输出

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

} catch (IOException e) {

e.printStackTrace();

}finally {

//从后面向前面倒着释放关闭资源

if (bao!=null){

bao.close();

}

if (is!=null){

is.close();

}

if (socket!=null){

socket.close();

}

if (serverSocket!=null){

serverSocket.close();

}

}

}

}

客户端代码部分

import java.io.IOException;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

//客户端

public class TcpClientDemo01 {

public static void main(String[] args) throws IOException {

OutputStream os=null;

Socket socket=null;

try {

//1,要知道服务器的地址 端口号

InetAddress serverIP=InetAddress.getByName("127.0.0.1");

int port=9999;

//2.创建一个socket连接

socket=new Socket(serverIP,port);

//3.发送消息io流

os=socket.getOutputStream(); //向外发送消息输出流

os.write("你好".getBytes());

} catch (Exception e) {

e.printStackTrace();

}finally {

if (os!=null){

os.close();

}

if (socket!=null){

socket.close();

}

}

}

}

获取到的信息

b463081f1e5b7e2849246a9dc0c5506b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值