java socket 服务端 客户端
2024-08-27 07:42:38
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
最新文章
- Linux IPC socket 广播,组播
- How to use groovy script on jenkins
- 详解div+css相对定位和绝对定位用法
- 为大家分享一个 Ajax Loading —— spin.js
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
- Meta标签实现阻止移动设备(手机、Pad)的浏览器双击放大网页
- HDU 2222 Keywords Search (AC自动机)
- HTML笔记(六)文档类型
- NET
- spring3.0.5的aop使用
- AtCoder Grand Contest 001
- Keil V4.72升级到V5.1X之后
- Android Application的使用及其生命周期
- Octet string 解析
- PHP框架学习之Laravel安装
- Node.js新手教程——怎样实现文件上传功能
- android脚步---不同activity之间参数传递
- awk多分隔符功能及wc命令案列及企业级应用
- 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作
- 【linux】统计文件夹中文件行数
热门文章
- centos 6.3 64位下cpuminer +mining_proxy 挖掘莱特币(LTC)教程
- mysql查询今天、昨天、本周、本月、上一月 、今年数据
- supervisor 完整安装步骤
- Oozie工作流属性配置的方式与策略
- 微服务,ApiGateway 与 Kong
- FFmpeg(7)-av_read_frame()读取帧数据AVPacket和av_seek_frame()改变播放进度
- Cowboy实例
- spark join
- 支付宝对账单下载Java沙箱调用
- Asp.Net MVC简单三层架构(MVC5+EF6)