Server

  1. package com.witwicky.socket.basicsocket;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;
  8.  
  9. public class Server {
  10. public static void main(String[] args) {
  11. int port = 43523;
  12. ServerSocket serverSocket = null;
  13. try {
  14. System.out.println("===\nstart recive message......");
  15.  
  16. serverSocket = new ServerSocket(port);
  17. Socket socket = serverSocket.accept();
  18.  
  19. InputStream inputStream = socket.getInputStream();
  20.  
  21. StringBuffer sb = new StringBuffer();
  22. byte[] bytes = new byte[1024];
  23. int len;
  24. while ((len = inputStream.read(bytes)) != -1) {
  25. System.out.println("length: " + len);
  26. sb.append(new String(bytes, 0, len, "UTF-8"));
  27. }
  28. System.out.println(sb.toString());
  29. System.out.println("end recive message......\n===");
  30.  
  31. String returnContent = "recive over.";
  32. OutputStream outputStream = socket.getOutputStream();
  33.  
  34. outputStream.write(returnContent.getBytes("UTF-8"));
  35.  
  36. outputStream.close();
  37. inputStream.close();
  38. socket.close();
  39. serverSocket.close();
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  1. Connected to the target VM, address: '127.0.0.1:61818', transport: 'socket'
  2. ===
  3. start recive message......
  4. length: 180
  5. 因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。
  6. end recive message......
  7. ===
  8. Disconnected from the target VM, address: '127.0.0.1:61818', transport: 'socket'
  9.  
  10. Process finished with exit code 0

Client

  1. package com.witwicky.socket.basicsocket;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.net.Socket;
  7.  
  8. public class Client {
  9. public static void main(String[] args) {
  10. String host = "127.0.0.1";
  11. int port = 43523;
  12. try {
  13. System.out.println("===");
  14. Socket socket = new Socket(host, port);
  15. OutputStream outputStream = socket.getOutputStream();
  16.  
  17. String content = "因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。";
  18. outputStream.write(content.getBytes());
  19.  
  20. socket.shutdownOutput();
  21.  
  22. int len;
  23. byte[] bytes = new byte[1024];
  24. InputStream inputStream = socket.getInputStream();
  25. StringBuffer sb = new StringBuffer();
  26. while ((len = inputStream.read(bytes)) != -1) {
  27. sb.append(new String(bytes, 0, len, "UTF-8"));
  28. }
  29. System.out.println("service return content: " + sb.toString());
  30. System.out.println("===");
  31.  
  32. inputStream.close();
  33. outputStream.close();
  34. socket.close();
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38.  
  39. }
  40. }
  1. Connected to the target VM, address: '127.0.0.1:61828', transport: 'socket'
  2. ===
  3. service return content: recive over.
  4. ===
  5. Disconnected from the target VM, address: '127.0.0.1:61828', transport: 'socket'
  6.  
  7. Process finished with exit code 0

java socket 服务端 客户端的更多相关文章

  1. Java Socket 服务端发送数据 客户端接收数据

    服务端: package com.thinkgem.wlw.modules.api.test.socket; /** * @Author: zhouhe * @Date: 2019/4/8 9:30 ...

  2. JAVA WEBSERVICE服务端&客户端的配置及调用(基于JDK)

    前言:我之前是从事C#开发的,因公司项目目前转战JAVA&ANDROID开发,由于对JAVA的各种不了解,遇到的也是重重困难.目前在做WEBSERVICE提供数据支持,看了网上相关大片的资料也 ...

  3. TCP Socket服务端客户端(二)

    本文服务端客户端封装代码转自https://blog.csdn.net/zhujunxxxxx/article/details/44258719,并作了简单的修改. 1)服务端 此类主要处理服务端相关 ...

  4. python 并发编程 socket 服务端 客户端 阻塞io行为

    阻塞io行为 server.accept server.recv client.send recv,accept  分为两个阶段 1.wait for data 对方把数据经过网络延迟送到自己的操作系 ...

  5. C# Socket服务端与客户端通信(包含大文件的断点传输)

    步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收 ...

  6. 利用多线程使socket服务端可以与多个客户端同时通讯

    利用多线程使socket服务端可以与多个客户端同时通讯 server import socket 1. 符合TCP协议的手机 server = socket.socket(socket.AF_INET ...

  7. [javaSE] 网络编程(TCP服务端客户端互访阻塞)

    客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据 客户端: 获取Socket对象,new出来,构造参数:String的ip地址,int的端口号 调用Socket对象的getOutputStr ...

  8. TCP/IP网络编程之基于UDP的服务端/客户端

    理解UDP 在之前学习TCP的过程中,我们还了解了TCP/IP协议栈.在四层TCP/IP模型中,传输层分为TCP和UDP这两种.数据交换过程可以分为通过TCP套接字完成的TCP方式和通过UDP套接字完 ...

  9. TCP/IP网络编程之基于TCP的服务端/客户端(一)

    理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于流(stream)的套接字.TCP是Transmissi ...

随机推荐

  1. GitHub 上值得推荐的开源电子书

    GitHub 上值得推荐的开源电子书 开源不仅局限于软件领域,开源同样意味着自由选择的权利和对知识开放的追求. 可以参照这篇文章,已附上所有超链接编程类开放书籍荟萃-Linux Story 语言无关类 ...

  2. MySQL通过Explain查看select语句的执行计划结果触发写操作

    [背景] 某某同学执行了一下Explain结果结果发现数据库有了一条写入操作,恭喜这位同学你的锅到货了,你签收一下: 对! 你没有听错,在一种场景下就算是Explain也会引发数据的写操作,就这是外层 ...

  3. Android:相机适配及图片处理的一些问题

    链接:http://www.cnblogs.com/liushilin/p/6387263.html 链接:http://www.cnblogs.com/liushilin/p/5956691.htm ...

  4. 转【Python】同时向控制台和文件输出日志logging

    #-*- coding:utf-8 -*-import logging # 配置日志信息logging.basicConfig(level=logging.DEBUG, format='%(ascti ...

  5. git 生成ssh keys

    最近从svn转到gitlab 记录一下如何生成ssh keys 首先下载GitExtensions246SetupComplete.msi并安装,如果已经安装了git,那么安装途中就跳过就行 安装完毕 ...

  6. Quartz 任务调度框架之Hello World

    0x01 什么是Quartz? Quartz是一个完全由java编写的开源作业调度框架. 0x02 实战Quartz Hello World 创建Maven项目,POM 文件配置如下: <pro ...

  7. 深入理解Linux内核-Ext2和Ext3文件系统

    Ext2的一般特征: 1.创建Ext2文件系统时,系统管理员可以根据预期的文件平均长度来选择最佳块大小(从1024B-4096B).来减少文件碎片2.创建Ext2文件系统时,系统管理员可以根据在给定大 ...

  8. HTML5学习笔记(二十七):Ajax

    在Ajax出现之前,网页页面加载后,需要请求服务端数据刷新页面时,整个页面都需要重新加载一次,对于只有一小个区域的数据更新也必须刷新整个页面. 这个窘境在出现XMLHttpRequest对象之后得到了 ...

  9. PLSA及EM算法

    前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...

  10. Oracle数据库密码过期

    按照如下步骤进行操作:1.查看用户的proifle是哪个,一般是default: SQL>SELECT USERNAME,PROFILE FROM DBA_USERS; 2.查看指定概要文件(如 ...