Java 网络编程之 TCP 实现简单的聊天系统

客户端

1、连接服务器 Socket

2、发送消息

package lesson02;

import java.io.IOException;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

/**

* 客户端

*/

public class TcpClientDemo1 {

public static void main(String[] args) {

Socket socket = null;

OutputStream os = 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("你好,欢迎学习狂神学Java".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();

}

}

}

}

}

服务端

1、建立服务的端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package lesson02;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;

/**

* 服务端

*/

public class TcpServerDemo1 {

public static void main(String[] args) {

ServerSocket serverSocket = null;

Socket socket = null;

InputStream is = null;

ByteArrayOutputStream baos = null;

try {

//1、我得有一个地址

serverSocket = new ServerSocket(9999);

while (true){

//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(baos.toString());

}

/*

byte[] buffer = new byte[1024];

int len;

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

String msg = new String(buffer, 0, len);

System.out.println(msg);

}

*/

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

}

}

}

}

}

服务端

1、建立服务的端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package lesson02;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;

/**

* 服务端

*/

public class TcpServerDemo1 {

public static void main(String[] args) {

ServerSocket serverSocket = null;

Socket socket = null;

InputStream is = null;

ByteArrayOutputStream baos = null;

try {

//1、我得有一个地址

serverSocket = new ServerSocket(9999);

while (true){

//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(baos.toString());

}

/*

byte[] buffer = new byte[1024];

int len;

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

String msg = new String(buffer, 0, len);

System.out.println(msg);

}

*/

} 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 网络编程之 TCP 实现简单的聊天系统 的全部内容, 来源链接: utcz.com/z/353672.html

回到顶部