ServerSocket

All of codes are from GeekAcademy.

Use ServerSocket to create a chat server - 1

MyServerSocket.java

public class MyServerSocket {

    public static void main(String[] args) {

        new ServerListener().start();
    }
}

ServerListener.java

public class ServerListener extends Thread {

    @Override
    public void run() {

        try {
            ServerSocket serverSocket = new ServerSocket(12345);
            while(true){
                Socket socket = serverSocket.accept();
                JOptionPane.showMessageDialog(null, "A client connects to the local port 12345");
                new ChatSocket(socket).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ChatSocket.java

public class ChatSocket extends Thread {

    Socket socket;
    public ChatSocket( Socket s) {
        this.socket = s;
    }

    public void out(String out) {
        try {
            socket.getOutputStream().write(out.getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void run() {

        int count = 0;
        while(true){
            count++;
            out("loop: " + count + "  ");
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
时间: 2024-11-05 20:30:36

ServerSocket的相关文章

Java ServerSocket用法详解

在客户/服务器通信模式中,服务器端需要创建监听特定端口的ServerSocket,ServerSocket负责接收客户连接请求. 一.构造ServerSocket ServerSocket的构造方法有以下几种重载形式: ServerSocket()throws IOException ServerSocket(int port) throws IOException ServerSocket(int port, int backlog) throws IOExceptionServerSocke

ServerSocket与Socket类

ServerSocket与Socket类 TCP套接字协议: TCP最主要的特征就是能够建立长时间的连接,而且能够保证数据安全的送达,但是速度比较慢.使用TCP进行连接的时候会有三次握手,之后才建立起服务器与客户端的连接,因为TCP的链接习惯是询问对方机器是否存在,不存在就不会建立连接,存在才会建立连接. 示意图: ServerSocket类: 在Java中想要使用TCP协议做编写服务端的话,需要使用到ServerSocke类,这个类是TCP协议的. TCP协议的操作类都在java.net包下放

java网络编程serversocket

转载:http://www.blogjava.net/landon/archive/2013/07/24/401911.html Java网络编程精解笔记3:ServerSocket详解ServerSocket用法详解 1.C/S模式中,Server需要创建特定端口的ServerSocket.->其负责接收client连接请求. 2.线程池->包括一个工作队列和若干工作线程->工作线程不断的从工作队列中取出任务并执行.-->java.util.concurrent->线程池

JAVA Socket 编程---Socket 和 ServerSocket

一,Socket Socket的选项 1) TCP_NODELAY:默认值为false.表示采用Negale算法.当设置为true时,表示关闭Socket缓冲,立即发送数据. Socket默认发送数据是采用Negale算法.Negale算法是指发送方发送的数据不会立即发出,而是先放在缓冲区内,等缓冲区满了再发出.发送完一批数据后,会等待对方对这批数据的回应,然后再发送下一批数据.该算法的目的是通过减少传输次数来提高通信的效率. 2) SO_RESUSEADDR:默认值为 false.当socke

Socket与ServerSocket的交互过程

Socket与ServerSocket的交互,下面的图片我觉得已经说的很详细很清楚了. 来源: http://www.cnblogs.com/rond/p/3565113.html

socket系列之服务器端socket——ServerSocket类

一般地,Socket可分为TCP套接字和UDP套接字,再进一步,还可以被分为服务器端套接字跟客户端套接字.这节我们先关注TCP套接字的服务器端socket,Java中ServerSocket类与之相对应,这个类主要用于如何在服务器端创建一个套接字服务,建立一个通信终端,被动地等待客户端的连接,一旦有数据进入被监听的端口,这个类将能接收这些数据. ServerSocket类位于java.net包中,它有很多方法,包括创建socket实例.绑定端口,阻塞接收连接等.一般服务器按以下几步进行工作: ①

ServerSocket和Socket

前言 用ServerSocket和Socket做了个Server.Client通信的demo,以及学习下在这个demo过程中用到java.net.java.io包下几个常用的类. Server import java.net.*;import java.io.*;public class HttpServer{         public static void main(String[] args){        new HttpServer().start();     }       

java.net.ServerSocket和java.net.Socket

个人博客地址:http://www.cnblogs.com/wdfwolf3/ java.net.ServerSocket 1.构造函数 a.ServerSocket() 创建一个无连接的server socket. b.ServerSocket(int port) 绑定到port端口上 c.ServerSocket(int port, int backlog) backlog表示等待连接的队列最大长度 d.ServerSocket(int port, int backlog, InetAddr

ServerSocket服务器

package cn.hackcoder.action; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.net.Ine

java基础入门-建立能够多client链接的ServerSocket

承接上一篇文章,今天谈论一下能够多client链接的ServerSocket. 这里面注意涉及到的技术点是: 1.ServerSocket 2.多线程 这次我们分成两个类来实现,先上代码: package com.test.socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.S