简易的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();
}
}
}
}
}