`
wx1568905209
  • 浏览: 25167 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

传统的Socket编程

 
阅读更多

一、创建一个Server端

1、创建一个ServerSocket端,并绑定一个端口

ServerSocket serverSockdet  = new ServerSocket(port);

2、接收客户端连接

Socket socket = serverSocket.accept();

3、处理客户端请求

伪代码:

public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8766);
            System.out.println("server is working....");

            Socket socket = serverSocket.accept();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String receive = bufferedReader.readLine();
            System.out.println("我收到了客户端给我的请求: " + receive);
//
            PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);
            printWriter.println("你好啊,欢迎光临");

            bufferedReader.close();

            printWriter.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

二、创建客户端

1、创建Socket,Socket socket = new Socket(port);

2、发送请求到服务端

伪代码

PrintWriter printWriter = null;
BufferedReader bufferedReader = null;
try {
    Socket socket = new Socket("127.0.0.1", 8766);
    System.out.println("客户端启动了。。。");

    printWriter = new PrintWriter(socket.getOutputStream(), true);
    printWriter.println("我是客户端,我来请求你" + "\n");

    bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String response = bufferedReader.readLine();
    System.out.println("这是服务端给我的响应:" + response);

这里有个注意点:

printWriter.println() 发送消息的时候,要使用println(),不使用print(),否则服务端读取会有问题。 这是因为使用println()后会,结尾会有\n,表示已经写完了,否则服务端使用readLine()认为一直读。

 

传统的BIO弊端:来一个客户端请求,创建一个线程去处理,优化的方式呢,伪异步,就是使用线程池

 

 

转载于:https://my.oschina.net/u/2504766/blog/1510112

分享到:
评论

相关推荐

    《NIO与Socket编程技术指南》_高洪岩

    《NIO与Socket编程技术指南》是一本深入探讨Java NIO(New Input/Output)和Socket编程的专业书籍,由高洪岩撰写。本书主要针对Java开发者,旨在帮助他们理解和掌握这两种在开发网络应用中至关重要的技术。 Java ...

    Linux下使用C++进行Socket编程

    Linux下使用C++进行Socket编程是...总之,Linux下的C++ Socket编程涉及对传统Socket API的封装和利用面向对象的方法来简化网络编程。这种方法提高了代码的可重用性和可维护性,使得网络通信程序的设计更加灵活和高效。

    计算机 网络编程 外文翻译 外文文献 英文文献 Socket网络编程的.doc

    在本文档中,主要讨论了一个名为"活跃网络Socket编程"(ANSP)的概念,这是对传统Socket编程的一种扩展,特别是在活跃网络的背景下。 活跃网络(Active Networks)是一种通信网络架构,允许在网络中注入可执行代码...

    Linux SOCKET编程 PDF 清晰文字版 非扫描(附录一 简明SOCKET编程指南.[pdf)

    Linux/Unix系统下的Socket编程是网络通信程序设计的基础,其核心是BSD Socket接口,这一接口被广泛地应用在众多Unix系统中,包括Linux。BSD Socket接口提供了一组用于网络通信的函数,这些函数允许开发者进行套接字...

    socket 编程原理

    ### Socket编程原理详解 #### 一、问题的引入 在探讨Socket编程原理之前,我们先来看一下UNIX系统中I/O操作的基本模式。UNIX系统中I/O操作的基本模式为:打开(open) - 读/写(read/write) - 关闭(close)。这种模式...

    Java Socket编程.pdf

    Java Socket编程是网络编程的一个重要部分,它允许在网络中的计算机之间进行数据交换。Socket编程是基于TCP/IP协议的,因此了解计算机网络、分组报文和协议对于掌握Socket编程来说至关重要。接下来,我将详细解释...

    MFC socket网络编程

    而Socket编程是网络通信的基础,MFC对Socket编程提供了封装,使得开发者能够在MFC环境下更方便地进行网络通信程序的开发。本知识点将详细解析如何使用MFC进行Socket网络编程,以创建一个服务器/客户端应用程序。 ##...

    基于windows的socket编程

    在本文中,我们将深入探讨基于Windows的Socket编程,特别是如何利用异步的WSASelect模型构建一个聊天应用程序。Socket编程是计算机网络中的基础组件,它允许程序之间通过网络进行通信。在Windows环境下,我们通常...

    Java TCP IP Socket编程 包含源码

    Java TCP/IP Socket编程是网络通信领域中的核心技术,广泛应用于服务器端和客户端之间的数据传输。本资源包含第二版书籍的相关源码,旨在帮助开发者深入理解并实践Socket编程。以下是关于Java TCP/IP Socket编程的...

    linux嵌入式socket编程原理及实例分析

    Linux 嵌入式 Socket 编程原理及实例分析 本资源详细介绍了 Linux 嵌入式 Socket 编程的原理和实例分析。Socket 编程是 Unix 系统中的一种网络应用编程接口,用于实现进程间的通信。 Socket 编程的起源 UNIX 系统...

    Linux下ATM Socket编程.pdf

    Linux下的ATM Socket API设计旨在兼容传统Socket API,同时满足ATM网络的特殊需求。这种API的设计思想源自BSD 4.3版的UNIX Socket API,并进行了扩展,以适应ATM网络的特性。ATM Socket编程允许开发者创建、管理ATM...

    socket编程入门(经典版

    ### Socket编程入门(经典版) #### 1. 预备知识 在开始学习socket编程之前,我们需要了解一些基础知识,这些知识对于理解socket的工作原理至关重要。 ##### 1.1 网络字节序 在计算机网络通信中,数据是以流的形式...

    VC6.0 socket编程

    在IT行业中,Socket编程是一种基础且重要的网络通信技术,它为应用程序提供了低级别的网络通信接口。本主题聚焦于“VC6.0 Socket编程”,这是一个基于Visual C++ 6.0开发环境下的网络编程实践,主要涉及到如何利用...

    JAVA 传统socket

    Java 传统Socket编程是网络通信中的基础技术,它允许两台计算机通过TCP/IP协议进行数据交换。在Java中,Socket类和ServerSocket类是实现这一功能的核心。本篇将深入探讨这两个类以及相关知识点。 首先,`...

    Linux socket编程原理

    ### Linux Socket编程原理详解 #### 一、引言 Socket编程是现代计算机网络通信的核心技术之一,尤其是在基于Linux的操作系统中。它为不同主机上的进程提供了高效、灵活且可靠的通信手段。本文旨在深入探讨Linux...

    Java TCP IP Socket编程(中文版).pdf

    在计算机网络领域,TCP/IP是一组用于互联网数据传输的协议,而Socket编程则是实现这些协议功能的一种编程技术。在Java语言中,Socket编程通过提供标准的API来实现网络通信,使得网络应用开发变得更加方便和高效。 ...

    netty与socket交互实例

    在本文中,我们将深入探讨Netty与传统Socket编程的交互实例,这对于理解如何在实际项目中整合这两种技术至关重要。 首先,让我们了解Netty的核心特性。Netty采用了非阻塞I/O模型,这使得它在处理大量并发连接时表现...

    SOCKET编程的详细电子文档 .pdf

    ### SOCKET编程原理详解 #### 2.1 问题的引入 在探讨SOCKET编程之前,我们先了解一下UNIX系统中I/O操作的基本模式。在UNIX环境中,I/O操作遵循着一个典型的流程:打开-读/写-关闭(open-write-read-close)。用户...

Global site tag (gtag.js) - Google Analytics