zoukankan      html  css  js  c++  java
  • ServerSocket

    1.创建java project

     2.编写MyServerSocket.java类

    package com.nantian.socket;

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

    import javax.swing.JOptionPane;

    public class MyServerSocket {

    public static void main(String[] args) {
    try {
    //port取值范围:1-65535(通常取值较大,这样可以和系统的分开)
    ServerSocket serverSocket=new ServerSocket(12345);
    //监听客户端的连接
    //accept()为一个阻塞的方法,会阻塞当前的主线程,显然不合适,对于阻塞的方法应该另起一个线程
    //ServerSocket的accept()方法是侦听并接受到此套接字的连接,
    //就是一直等待连接,此方法在连接传入之前一直阻塞。直到接受到有socket的连接。
    Socket socket=serverSocket.accept();
    //建立连接
    JOptionPane.showMessageDialog(null, "有客户端连接到了本机的12345端口");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    }

    package com.nantian.socket;

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

    import javax.swing.JOptionPane;

    public class MyServerSocket {

    public static void main(String[] args) {
    try {
    //port取值范围:1-65535(通常取值较大,这样可以和系统的分开)
    ServerSocket serverSocket=new ServerSocket(12345);
    //监听客户端的连接
    //accept()为一个阻塞的方法,会阻塞当前的线程
    //ServerSocket的accept()方法是侦听并接受到此套接字的连接,
    //就是一直等待连接,此方法在连接传入之前一直阻塞。直到接受到有socket的连接。
    Socket socket=serverSocket.accept();
    //建立连接
    JOptionPane.showMessageDialog(null, "有客户端连接到了本机的12345端口");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    }

    3.右键run as -->java application

    main线程处于阻塞状态:

     浏览器端输入:127.0.0.1/12345

    出现如下图:

     ===================================================================================================================================

    //accept()为一个阻塞的方法,会阻塞当前的主线程,显然不合适,对于阻塞的方法应该另起一个线程

    代码改进:(见)

    使用 ServerSocket 建立聊天服务器-1

  • 相关阅读:
    js中location.href的用法
    entityframework单例模式泛型用法
    [C#]从URL中获取路径的最简单方法-new Uri(url).AbsolutePath
    等到花儿也谢了的await
    ASP.NET MVC下的异步Action的定义和执行原理
    实际案例:在现有代码中通过async/await实现并行
    ASP.NET MVC Controllers and Actions
    扩展HtmlHelper
    iOS开发网络篇—XML数据的解析
    IOS学习:常用第三方库(GDataXMLNode:xml解析库)
  • 原文地址:https://www.cnblogs.com/curedfisher/p/11934457.html
Copyright © 2011-2022 走看看