Socket编程入门(一)实现简单的Socket实例
使用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实例相关推荐
- socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)
socket 编程入门教程(三)TCP原理:5.TCP的三次握手(three-way handshake) 前面3个小节介绍了socket机制对TCP协议三次握手的实现,需要强调的是,与协议独立于实现 ...
- Socket编程Http下载的简单实现
Socket编程Http下载的简单实现 - Mr.DejaVu - 博客园 <C/C++> Socket编程Http下载的简单实现 下载原理: 网上介绍很多,就是按照Http协议,使用So ...
- Linux Socket编程入门——浅显易懂
文章目录 1. 概述 2. Socket 3. 网络字节序 4. sockaddr 数据结构 5. 网络套接字API函数 5.1 socket() 5.2 bind() 5.3 listen() ...
- 【Java高级】初探socket编程 ——JavaSocket连接与简单通信
新学期生活开始一段时间了,要继续学习一些新的技术(这里指socket /doge),目标是尝试完成一个在线即时聊天的小程序(尽量不咕).会更新一系列socket编程的技术文章,欢迎关注交流~ 那么千里 ...
- java socket编程 聊天_基于java的socket简单聊天编程
socket编程: 一:什么是socket:socket是BSD UNIX的通信机制,通常称为"套接字",其英文原意是"孔"或"插座".有些 ...
- 网络编程入门从未如此简单(一):假如你来设计网络,会怎么做?
本文原题"如果让你来设计网络",有修订和改动,收录已征得作者同意,转载请联系作者.本文已同步发布于52im社区:http://www.52im.net/thread-3330-1- ...
- Windows Socket编程笔记之最简单的小Demo
Windows Socket编程的大致过程: 服务器端: ----过程-------------对应的API------- 0.初始化 | WSAStartup() 1.创建So ...
- python send 案例_python socket编程入门(编写server实例)+send 与sendall的区别与使用方法...
python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...
- python socket编程_最基础的Python的socket编程入门教程
本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的sock ...
- socket 编程入门教程(一)TCP server 端:1、建模
绝大部分关于socket编程的教程总是从socket的概念开始讲起的.要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分 ...
最新文章
- 3.5.4 CSMA/CD 协议
- PAT题解-1118. Birds in Forest (25)-(并查集模板题)
- 一些不常用的代码汇总(不断更新)
- 低学历程序员的红利来了,这个政策来的太惊喜!
- udp多线程 java_UDP实现多线程通信
- 40. 组合总和 II021(回溯法)
- golang:Linux下安装go环境
- ADO.NET基本运用随笔
- 前后端开发接口文档模板(登录、注册、项目发布与需求发布)
- matlab求组合数不想求组合数矩阵,【潘德的预言】用关系模型与组合数计算NPC最大相容人数和所有组合...
- jfinal,jxl导出excel遇到的异常
- Office2013办公软件简体中文专业增强版
- Lecture 8:Norms of Vectors and Matrices
- NetSuite 合并报表之外币折算差异(CTA)
- excel如何用超链接直接打开文件
- html引入第三方库,基于webpack实现多html页面开发框架七 引入第三方库如jquery
- PHP中?是什么意思,有什么用?
- 【渝粤教育】电大中专跨境电子商务理论与实务 (22)作业 题库
- 信息安全数学基础(仅供个人复习使用)
- caffe ssd 测试demo,检测单张图片
热门文章
- SubSonic使用技巧
- c语言fltk图形库,FLTK编程模型
- 计算机配置主板技术参数,i9-7900X/7920X配什么主板好?i9-7920X/7900X主板搭配与参数详解...
- photoshop照片尺寸
- 小白进阶——Mike21(二)
- pcs7 v8.1服务器系统,PCS7 V8.1 SP1 AS PO授权 和OS PO授权和ES PO授权 具体 步骤 越详细越好...
- python画立体温度分布图_Origin绘制3D立体温度分布图的方法
- Sublime Text 2 注册码/破解方法
- c++程序内嵌lua字节码
- matlab蒙特卡洛法求概率,基于某MATLAB的蒙特卡洛方法对可靠度的计算.doc