您的位置:首页 > 理论基础 > 计算机网络

java简单的TCP服务程序

2012-11-23 09:35 387 查看
tcp服务器代码如下:

import java.net.*;

public class ReserveServer {
public static void main(String[] args) { // 用户可自行指定端口号
try {
ServerSocket ss;

if (args.length < 1) {
ss = new ServerSocket(8888);
} else {
ss = new ServerSocket(Integer.parseInt(args[0]));
}

while (true) {
Socket s = ss.accept();

new Thread(new Servicer(s)).start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


Servicer类如下:

import java.net.*;
import java.io.*;

public class Servicer implements Runnable {
private Socket s;

public Servicer(Socket s) {
this.s = s;
}

public void run() {
try {
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
BufferedReader bufReader = new BufferedReader(new InputStreamReader(is));
PrintWriter printWriter = new PrintWriter(os, true);

while (true) {
String info = bufReader.readLine();

if (info.equalsIgnoreCase("quit")) {
break;
}

String result = new StringBuffer(info).reverse().toString();

printWriter.println(info + " --> " + result);
}

bufReader.close();
printWriter.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}


客户端代码如下:

import java.net.*;
import java.io.*;

public class TcpClient {

public static void main(String[] args) {
if (args.length < 2) {
printUsage();
}
try {
Socket s = new Socket(args[0], Integer.parseInt(args[1]));
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
BufferedReader bufNet = new BufferedReader(new InputStreamReader(is));
PrintWriter prtWriter = new PrintWriter(os, true);
BufferedReader bufKeyBoard = new BufferedReader(new InputStreamReader(System.in));

while (true) {
String input = bufKeyBoard.readLine();
prtWriter.println(input);

if (input.equalsIgnoreCase("quit")) {
break;
}

System.out.println(bufNet.readLine());
}

prtWriter.close();
bufNet.close();
bufKeyBoard.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}

private static void printUsage() {
System.out.println("Usage : java TcpClient ServerIP ServerPort");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: