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

最新文章

  1. Linux IPC socket 广播,组播
  2. How to use groovy script on jenkins
  3. 详解div+css相对定位和绝对定位用法
  4. 为大家分享一个 Ajax Loading —— spin.js
  5. 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
  6. Meta标签实现阻止移动设备(手机、Pad)的浏览器双击放大网页
  7. HDU 2222 Keywords Search (AC自动机)
  8. HTML笔记(六)文档类型
  9. NET
  10. spring3.0.5的aop使用
  11. AtCoder Grand Contest 001
  12. Keil V4.72升级到V5.1X之后
  13. Android Application的使用及其生命周期
  14. Octet string 解析
  15. PHP框架学习之Laravel安装
  16. Node.js新手教程——怎样实现文件上传功能
  17. android脚步---不同activity之间参数传递
  18. awk多分隔符功能及wc命令案列及企业级应用
  19. 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作
  20. 【linux】统计文件夹中文件行数

热门文章

  1. centos 6.3 64位下cpuminer +mining_proxy 挖掘莱特币(LTC)教程
  2. mysql查询今天、昨天、本周、本月、上一月 、今年数据
  3. supervisor 完整安装步骤
  4. Oozie工作流属性配置的方式与策略
  5. 微服务,ApiGateway 与 Kong
  6. FFmpeg(7)-av_read_frame()读取帧数据AVPacket和av_seek_frame()改变播放进度
  7. Cowboy实例
  8. spark join
  9. 支付宝对账单下载Java沙箱调用
  10. Asp.Net MVC简单三层架构(MVC5+EF6)