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

posted @ 2019-11-26 11:45  Curedfisher  阅读(245)  评论(0编辑  收藏  举报