使用Socket编写了一个服务端和客户端通讯的例子,下面帖代码,本文使用了java7的部分特性,因此需要jdk至少7以上。

客户端:


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;public final class Client {final static int PORT = 8088;final static String ADDRESS = "127.0.0.1";public static void main(String[] args) {try (Socket socket = new Socket(ADDRESS, PORT);BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream(), true);) {while(true) {//循环发送消息// 向服务器端发送数据out.println("今天天气怎么样?");String response = in.readLine();System.out.println("from server:"+response);out.println("我想知道我在服务器的积分是多少?");Thread.sleep(2000);}} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

服务器端:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;public class Server {final static int PORT = 8088;public static void main(String[] args) {ServerSocket server = null;try {server = new ServerSocket(PORT);System.out.println("Server is start....");while (true) {//通过循环使服务器可持续接收请求// 进行阻塞,这里阻塞的是循环,但是当有请求传入时会放行一次Socket socket = server.accept();new Thread(new ServerHandler(socket)).start();}} catch (IOException e) {e.printStackTrace();}}
}

ServerHandler类


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;public class ServerHandler implements Runnable {private Socket socket;public ServerHandler(Socket socket) {this.socket = socket;}@Overridepublic void run() {try(BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintStream out = new PrintStream(socket.getOutputStream(), true);){String body = null;while (true) {body = in.readLine();if (body == null)break;System.out.println("from Client:" + body);out.println("我是服务器返回的数据");}} catch (IOException e) {e.printStackTrace();}}}

Socket编程入门(一)实现简单的Socket实例相关推荐

  1. socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)

    socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...

  2. Socket编程Http下载的简单实现

    Socket编程Http下载的简单实现 - Mr.DejaVu - 博客园 <C/C++> Socket编程Http下载的简单实现 下载原理: 网上介绍很多,就是按照Http协议,使用So ...

  3. Linux Socket编程入门——浅显易懂

    文章目录 1. 概述 2. Socket 3. 网络字节序 4. sockaddr 数据结构 5. 网络套接字API函数  5.1 socket()  5.2 bind()  5.3 listen() ...

  4. 【Java高级】初探socket编程 ——JavaSocket连接与简单通信

    新学期生活开始一段时间了,要继续学习一些新的技术(这里指socket /doge),目标是尝试完成一个在线即时聊天的小程序(尽量不咕).会更新一系列socket编程的技术文章,欢迎关注交流~ 那么千里 ...

  5. java socket编程 聊天_基于java的socket简单聊天编程

    socket编程: 一:什么是socket:socket是BSD UNIX的通信机制,通常称为"套接字",其英文原意是"孔"或"插座".有些 ...

  6. 网络编程入门从未如此简单(一):假如你来设计网络,会怎么做?

    本文原题"如果让你来设计网络",有修订和改动,收录已征得作者同意,转载请联系作者.本文已同步发布于52im社区:http://www.52im.net/thread-3330-1- ...

  7. Windows Socket编程笔记之最简单的小Demo

    Windows Socket编程的大致过程: 服务器端: ----过程-------------对应的API-------  0.初始化         |  WSAStartup()  1.创建So ...

  8. python send 案例_python socket编程入门(编写server实例)+send 与sendall的区别与使用方法...

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  9. python socket编程_最基础的Python的socket编程入门教程

    本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的sock ...

  10. socket 编程入门教程(一)TCP server 端:1、建模

    绝大部分关于socket编程的教程总是从socket的概念开始讲起的.要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分 ...

最新文章

  1. 3.5.4 CSMA/CD 协议
  2. PAT题解-1118. Birds in Forest (25)-(并查集模板题)
  3. 一些不常用的代码汇总(不断更新)
  4. 低学历程序员的红利来了,这个政策来的太惊喜!
  5. udp多线程 java_UDP实现多线程通信
  6. 40. 组合总和 II021(回溯法)
  7. golang:Linux下安装go环境
  8. ADO.NET基本运用随笔
  9. 前后端开发接口文档模板(登录、注册、项目发布与需求发布)
  10. matlab求组合数不想求组合数矩阵,【潘德的预言】用关系模型与组合数计算NPC最大相容人数和所有组合...
  11. jfinal,jxl导出excel遇到的异常
  12. Office2013办公软件简体中文专业增强版
  13. Lecture 8:Norms of Vectors and Matrices
  14. NetSuite 合并报表之外币折算差异(CTA)
  15. excel如何用超链接直接打开文件
  16. html引入第三方库,基于webpack实现多html页面开发框架七 引入第三方库如jquery
  17. PHP中?是什么意思,有什么用?
  18. 【渝粤教育】电大中专跨境电子商务理论与实务 (22)作业 题库
  19. 信息安全数学基础(仅供个人复习使用)
  20. caffe ssd 测试demo,检测单张图片

热门文章

  1. SubSonic使用技巧
  2. c语言fltk图形库,FLTK编程模型
  3. 计算机配置主板技术参数,i9-7900X/7920X配什么主板好?i9-7920X/7900X主板搭配与参数详解...
  4. photoshop照片尺寸
  5. 小白进阶——Mike21(二)
  6. pcs7 v8.1服务器系统,PCS7 V8.1 SP1 AS PO授权 和OS PO授权和ES PO授权 具体 步骤 越详细越好...
  7. python画立体温度分布图_Origin绘制3D立体温度分布图的方法
  8. Sublime Text 2 注册码/破解方法
  9. c++程序内嵌lua字节码
  10. matlab蒙特卡洛法求概率,基于某MATLAB的蒙特卡洛方法对可靠度的计算.doc