文档章节

Socker学习

marjey
 marjey
发布于 2016/11/05 13:13
字数 332
阅读 9
收藏 1

socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

对应java sorcker来说,可以用以下图列说明:

我们先来看看Socker官方API怎么说的:socker是两台机器之间的终节点。

http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html

下面我们看一下ServerSocket。

ServierSocket的主要作用是用来监听端口号是否有事件发生,同时返回与请求相关的socket对象。进行通信。以下这段代码,当用浏览器访问127.0.0.1:8888 的时候,控制台会输出

新增连接:/127.0.0.1:65475
新增连接:/127.0.0.1:65476

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerSocketDemo {

  static   ServerSocket serverSocket =null;

    public ServerSocketDemo() throws IOException {
    }


    public static void main(String[] args) throws IOException {
        serverSocket = new ServerSocket(8888);
        service();
    }
    public static void service() {
        while (true) {
            Socket socket = null;
            try {
                socket = serverSocket.accept();
                System.out.println("新增连接:" + socket.getInetAddress() + ":" + socket.getPort());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

© 著作权归作者所有

下一篇: TCP/IP
marjey
粉丝 3
博文 173
码字总数 139219
作品 0
昆明
私信 提问
采用multipart/form-data方式 调用上传图片接口

需求: 在手机客户端调用服务器端接口 把手机中的图片上传到 接口提供的服务器上。 例如 新浪微博中的 发表附带图片的微博。 注:这里最好不要用socker编程来实现,因为当图片过大的时候,图...

六六木木
2013/08/19
10.1K
0
Access denied for user 'root'@'localhost' 解决流程

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 解决流程 基于debian 9 maridb 10 因为安装 时不知道 密码,所以在管理中下使用 mysqladmin -u root -p password ex(ex为密......

dragon_tech
2018/09/21
34
0
Infinispan 的 Hotrod 客户端 C++/C# 8.1.0.CR2 发布

Infinispan 包括 C++ 和 C# 两种语言版本的 Hotrod 客户端发布了 8.1.0 CR2 版本了,该版本主要是 bug 的修复: [HRCPP-351] - cache get doesn't work with protobuf marshaller [HRCPP-352......

局长
2017/03/16
634
0
Nginx配置Awstats分析Nginx日志笔记

1、修改Nginx日志格式: logformat json '$remoteaddr - $remoteuser [$timelocal] "$request" ' '$status $bodybytessent "$http_referer" ' '"$httpuseragent" "$httpxforwarded_for"'; ac......

lihuipeng
2016/04/16
0
0
python with魔法语句

通常之前我们在打开文件的时候都是: file = open("a.txt")try: data = file.read()finally: file.close() *每一个打开文件之后要关闭文件描述符,但是使用with语句则不用: whih open("a.t...

小罗ge11
2016/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
34分钟前
7
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
47分钟前
617
22
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
今天
5
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
今天
5
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部