java socket 服务端 客户端_java socket 服务端 客户端

该博客展示了如何使用Java的Socket类创建一个简单的服务端和客户端进行通信。服务端监听特定端口,接收客户端发送的数据并返回确认信息。客户端连接到服务端,发送一段文本后关闭输出流,读取服务端的响应并打印。
摘要由CSDN通过智能技术生成

Server

package com.witwicky.socket.basicsocket;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

public static void main(String[] args) {

int port = 43523;

ServerSocket serverSocket = null;

try {

System.out.println("===\nstart recive message......");

serverSocket = new ServerSocket(port);

Socket socket = serverSocket.accept();

InputStream inputStream = socket.getInputStream();

StringBuffer sb = new StringBuffer();

byte[] bytes = new byte[1024];

int len;

while ((len = inputStream.read(bytes)) != -1) {

System.out.println("length: " + len);

sb.append(new String(bytes, 0, len, "UTF-8"));

}

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

System.out.println("end recive message......\n===");

String returnContent = "recive over.";

OutputStream outputStream = socket.getOutputStream();

outputStream.write(returnContent.getBytes("UTF-8"));

outputStream.close();

inputStream.close();

socket.close();

serverSocket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

Connected to the target VM, address: '127.0.0.1:61818', transport: 'socket'

===

start recive message......

length: 180

因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。

end recive message......

===

Disconnected from the target VM, address: '127.0.0.1:61818', transport: 'socket'

Process finished with exit code 0

Client

package com.witwicky.socket.basicsocket;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

public class Client {

public static void main(String[] args) {

String host = "127.0.0.1";

int port = 43523;

try {

System.out.println("===");

Socket socket = new Socket(host, port);

OutputStream outputStream = socket.getOutputStream();

String content = "因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。";

outputStream.write(content.getBytes());

socket.shutdownOutput();

int len;

byte[] bytes = new byte[1024];

InputStream inputStream = socket.getInputStream();

StringBuffer sb = new StringBuffer();

while ((len = inputStream.read(bytes)) != -1) {

sb.append(new String(bytes, 0, len, "UTF-8"));

}

System.out.println("service return content: " + sb.toString());

System.out.println("===");

inputStream.close();

outputStream.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

Connected to the target VM, address: '127.0.0.1:61828', transport: 'socket'

===

service return content: recive over.

===

Disconnected from the target VM, address: '127.0.0.1:61828', transport: 'socket'

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值