단일 연결 Tcp 서버 구현
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
-
- public class TcpServer {
-
- private int port;
- private ServerSocket serverSocket = null;
- private Socket connected;
- private PrintWriter outToClient;
-
- private boolean bRunning = true;
-
- public TcpServer(String strPort) {
- this.port = Integer.parseInt(strPort);
- }
-
- public void start() {
- System.out.println("TCPServer waiting for client on port: " + port);
-
- try {
- serverSocket = new ServerSocket(port);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- ServerThread thread = new ServerThread();
- thread.start();
- }
-
- public void stop() {
- bRunning = false;
-
- try {
- connected.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- class ServerThread extends Thread {
-
- public void run() {
- try {
- while (bRunning) {
- //TODO: ( BindException), serverSocket
- connected = serverSocket.accept();
- System.out.println(" THE CLIENT" + " "
- + connected.getInetAddress() + ":"
- + connected.getPort() + " IS CONNECTED ");
-
- BufferedReader inFromClient = new BufferedReader(
- new InputStreamReader(connected.getInputStream(), "gb2312"));
-
- //BufferedReader inFromClient = new BufferedReader(
- // new InputStreamReader(connected.getInputStream()));
-
- //InputStream is = connected.getInputStream();
-
- outToClient = new PrintWriter(
- connected.getOutputStream(), true);
-
- while (bRunning) {
- System.out.println("SEND(Type Q or q to Quit):");
-
- String fromclient = inFromClient.readLine();
- System.out.println("received: " + fromclient);
-
- if (fromclient != null) {
- if (fromclient.equals("quit")) {
- TcpServer.this.stop();
- break;
- } else {
- // fromclient
- }
-
- }
- }
- }
- } catch (IOException ex) {
- ex.printStackTrace();
- }
-
- }
- }
-
- public void send(String req) {
- sendReply(req);
- }
-
- public void sendReply(String cmd) {
- if (outToClient != null) {
- outToClient.println(cmd);
- outToClient.flush();
- }
- }
- }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
k8spacket 및 Grafana를 통한 kubernetes용 TCP 패킷 트래픽 시각화보고 있지 않을 때 k8s 클러스터가 무엇을 하는지 알고 있습니까? 누가 그와 TCP 통신을 설정합니까? k8spacket 및 Grafana 를 사용하여 클러스터의 TCP 트래픽을 시각화할 수 있습니다. 설정된 연결...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.