当前位置:首页 > CN2资讯 > 正文内容

sock服务器JAVA socket服务器

1天前CN2资讯


           在Socket编程中,发送方和接收方的两个Socket之间必须建立连接,才能够在TCP协议的基础上进行通信。一般服务器端ServerSocket先启动,等待客户端的请求。客户端Socket可以向服务器发送连接请求,得到允许后进行连接。一旦这两个Socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送和接受操作。

          ServerSocket 类的对象是服务器端,实现服务器套接字。ServerSocket类主要用来监听指定端口并接受客户端发来的连接请求,也可以向客户端发送消息。

          创建TCP的Socket,需要建立服务端和客户端。首先建立服务器端,给服务器分配一个端口号。服务器使用accept方法等待客户端的信号。当客户端的信号一到就打开Socket连接,从Socket中取得OutputStream 和 InputStream。 创建一个TCP服务器端程序具体有以下几个步骤。

1 创建一个服务器端对象

2 从服务器端接受客户连接请求

3 创建一个服务线程处理新的连接

4 在服务线程中,从socket中获得I/O流

5 对I/O流进行读/写操作,完成与客户的交互

6 关闭I/O流

7 关闭Socket

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import .ServerSocket; import .Socket; //写服务器端,对端口进行监听,接受客户端请求并未客户端服务 public class TCPServer { public static void main(String[] args) { // TODO Auto-generated method stub //服务器对端口8888进行监听,接受到客户端连接请求后,创建和启动服务线程 long count = 0; ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(8888); System.out.println("服务器对8888端口实施监听..."); while(true)//服务器循环接受客户端的请求,为不同的客户端提供服务 { //接受客户端的连接请求,若有连接请求则返回连接对应的Socket对象 Socket socket = serverSocket.accept(); count++; //创建服务器线程 ServerThread serverThread = new ServerThread(socket, count); serverThread.start(); } } catch(IOException e) { } } } //定义ServerThread class, inherited by Thread class class ServerThread extends Thread { //根据客户端和计数器来创建服务器线程 Socket socket; long count; public ServerThread(Socket socket, long c)//构造方法 { this.count = c; this.socket = socket; } public void run() { int timeCounter = 0; try { //获取套接字的输入流 InputStream inputStream = socket.getInputStream(); //封装输入流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream); //封装输入流 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); //获取套接字的输入流 OutputStream outputStream = socket.getOutputStream();//获取套接字的输入流 //封装输出流 PrintStream printStream = new PrintStream(outputStream); while(true) { timeCounter ++; //声明用来计数的变量 String string = bufferedReader.readLine(); if(string.equals("exit")) { //如果客户端输入的是“exit”,则关闭客户端 printStream.println("exit"); printStream.close(); break; } //告知客户端是第几次转换,有几个客户端,并输出转换的字符串 printStream.println("这是" + socket.toString() + "第" + timeCounter + "次发送转换请求,现在有" + count + "个客户在线,转换后的字符串为 " + string.toUpperCase()); printStream.flush(); } } catch(IOException e) { e.printStackTrace(); } } }
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/31145.html

    分享给朋友:

    “sock服务器JAVA socket服务器” 的相关文章

    Hetzner VPS:高性能、低延迟的全球服务器解决方案

    公司背景与数据中心位置 Hetzner作为欧洲最大的数据中心运营商之一,一直以提供高性能的VPS和独立服务器而闻名。公司在德国、芬兰和美国设有数据中心,确保用户能够享受到低延迟和高带宽的服务。这些数据中心的地理位置选择非常讲究,不仅覆盖了欧洲的主要市场,还通过美国的数据中心服务全球用户。无论你是欧洲...

    全面解析VPS测试脚本:快速评估与优化服务器性能的终极指南

    VPS测试脚本是一种专门用于评估VPS服务器性能的工具。它能够帮助我们全面了解服务器的硬件配置和运行状态,包括CPU性能、内存大小、硬盘I/O速度、网络速度以及延迟等关键指标。通过运行这些脚本,我们可以快速获取服务器的性能数据,从而为选择、优化或监控VPS服务提供有力支持。 VPS测试脚本的作用不仅...

    国内VPS全解析:选择最佳虚拟专用服务器的指南

    国内VPS的概述 VPS,或者说虚拟专用服务器,是一种将一台物理服务器分割成多个虚拟服务器,以便多个用户可以共同使用。这样的设定不仅能够充分利用服务器的资源,还为用户提供了更高的灵活性与控制权。对于希望在网上进行业务拓展或个人项目的朋友们来说,国内VPS是一个非常合适的选择。 国内VPS的市场发展迅...

    QQ邮箱服务器完全指南:配置、安全性与优化技巧

    QQ邮箱服务器概述 QQ邮箱是由腾讯公司推出的一款广受欢迎的电子邮件服务。它的优势不仅在于强大的存储容量,还有丰富的功能,适合个人和企业用户使用。很多人都习惯使用QQ邮箱来发送、接收邮件,因此有必要了解其背后的邮件服务器。 在我使用QQ邮箱的过程中,发现它使用的是腾讯自家搭建的邮件服务器。这些服务器...

    获取CloudCone优惠码,享受超值VPS主机折扣

    CloudCone 优惠码概述 在探索CloudCone之前,我想先聊聊关于优惠码的事情。CloudCone优惠码是指通过一些特定的方式获得的、可以享受价格折扣的代码。这些代码常常可以在购买VPS主机或其他服务时使用,帮助我节省一些开支。比如,有时候我能在优惠活动中找到让人心动的折扣,几乎是对我钱包...

    宝塔面板PHP扩展新增和配置指南

    宝塔面板作为一款功能强大的服务器管理工具,不仅支持Linux,还支持Windows系统。这使得它成为了很多开发者和网站管理员的首选,因为它提供了包括网站管理、数据库管理、文件管理、以及FTP管理等多个方面的功能。最吸引我的地方在于,宝塔面板可以一键安装PHP、MySQL、Nginx等环境,简化了繁琐...