我是靠谱客的博主 爱听歌大象,最近开发中收集的这篇文章主要介绍java socket 持久 对比_java中的永久和持久Socket连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我创建了一个客户端 – 服务器连接,就像一个聊天系统.以前我在客户端使用while循环,它每次都在等待从控制台读取消息(当然服务器还有一个while循环以便永远服务).但是现在,我正在尝试首先在会话开始时创建连接,然后偶尔在会话期间发送消息,以便维持永久和持久的连接.

目前,没有while循环,客户端关闭连接,我不知道如何找到变通方法.

这是客户端代码:

import java.net.*;

import java.io.*;

public class ControlClientTest {

private Socket socket = null;

// private BufferedReader console = null;

private DataOutputStream streamOut = null;

public static void main(String args[]) throws InterruptedException {

ControlClientTest client = null;

String IP="127.0.0.1";

client = new ControlClientTest(IP, 5555);

}

public ControlClientTest(String serverName, int serverPort) throws InterruptedException {

System.out.println("Establishing connection. Please wait ...");

try {

socket = new Socket(serverName, serverPort);

System.out.println("Connected: " + socket);

start();

} catch (UnknownHostException uhe) {

System.out.println("Host unknown: " + uhe.getMessage());

} catch (IOException ioe) {

System.out.println("Unexpected exception: " + ioe.getMessage());

}

String line = "";

// while (!line.equals(".bye")) {

try {

Thread.sleep(1000);

//TODO get data from input

// line = console.readLine();

line="1";

if(line.equals("1"))

line="1,123";

streamOut.writeUTF(line);

streamOut.flush();

} catch (IOException ioe) {

System.out.println("Sending error: " + ioe.getMessage());

}

// }

}

public void start() throws IOException {

// console = new BufferedReader(new InputStreamReader(System.in));

streamOut = new DataOutputStream(socket.getOutputStream());

}

}

这是服务器代码:

import java.awt.*;

import java.io.*;

import java.net.ServerSocket;

import java.net.Socket;

public class ControlServer {

private Socket socket = null;

private ServerSocket server = null;

private DataInputStream streamIn = null;

public static void main(String args[]) {

ControlServer server = null;

server = new ControlServer(5555);

}

public ControlServer(int port) {

try {

System.out

.println("Binding to port " + port + ", please wait ...");

server = new ServerSocket(port);

System.out.println("Server started: " + server);

System.out.println("Waiting for a client ...");

socket = server.accept();

System.out.println("Client accepted: " + socket);

open();

boolean done = false;

while (!done) {

try {

String line = streamIn.readUTF();

// TODO get the data and do something

System.out.println(line);

done = line.equals(".bye");

} catch (IOException ioe) {

done = true;

}

}

close();

} catch (IOException ioe) {

System.out.println(ioe);

}

}

public void open() throws IOException {

streamIn = new DataInputStream(new BufferedInputStream(

socket.getInputStream()));

}

public void close() throws IOException {

if (socket != null)

socket.close();

if (streamIn != null)

streamIn.close();

}

}

最后

以上就是爱听歌大象为你收集整理的java socket 持久 对比_java中的永久和持久Socket连接的全部内容,希望文章能够帮你解决java socket 持久 对比_java中的永久和持久Socket连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部