// 服务端程序
import java.net.*;
import java.io.*;
public class EchoServer {
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.out.println("用法:EchoServer <端口号>");
return;
}
ServerSocket listenSocket = new ServerSocket(
Integer.parseInt(args[0]));
System.out.println("服务程序正在监听端口" + args[0]);
Socket clientSocket = listenSocket.accept();
PrintWriter out = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String message;
while ((message = in.readLine()) != null) {
System.out.println("收到请求:" + message);
out.println(message.toUpperCase());
}
out.close(); in.close();
clientSocket.close(); listenSocket.close();
}
}
// 客户端程序
import java.net.*;
import java.io.*;
public class EchoClient {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("用法:EchoClient <主机名> <端口号>");
return;
}
Socket socket = new Socket(args[0],
Integer.parseInt(args[1]));
PrintWriter out = new PrintWriter(
socket.getOutputStream(), true); // true指定自动刷新流
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream())); // 支持Unicode字符
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("返回:" + in.readLine());
}
out.close(); in.close();
stdIn.close(); socket.close();
}
}
import java.net.*;
import java.io.*;
public class EchoServer {
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.out.println("用法:EchoServer <端口号>");
return;
}
ServerSocket listenSocket = new ServerSocket(
Integer.parseInt(args[0]));
System.out.println("服务程序正在监听端口" + args[0]);
Socket clientSocket = listenSocket.accept();
PrintWriter out = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
String message;
while ((message = in.readLine()) != null) {
System.out.println("收到请求:" + message);
out.println(message.toUpperCase());
}
out.close(); in.close();
clientSocket.close(); listenSocket.close();
}
}
// 客户端程序
import java.net.*;
import java.io.*;
public class EchoClient {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("用法:EchoClient <主机名> <端口号>");
return;
}
Socket socket = new Socket(args[0],
Integer.parseInt(args[1]));
PrintWriter out = new PrintWriter(
socket.getOutputStream(), true); // true指定自动刷新流
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream())); // 支持Unicode字符
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("返回:" + in.readLine());
}
out.close(); in.close();
stdIn.close(); socket.close();
}
}
解决方案 »
- 请教JAVA FTP上传的一个问题
- unable to create JAXBContext
- 请问onItemClick函数中的每个参数是什么意思?
- 你好 我想问下关于Gigaspaces的事情
- actionForm 中validate不执行,struts-config.xml中<action validate="true"
- 请问高手,org.jnp.interfaces.NamingContextFactory 这个类在哪个包里面?
- 再谈:java.net.SocketException: Connection reset by peer: socket write error
- easy struts for jbuilder高手快来指点!!!!
- 关于xml概念的简单问题?
- 请问怎么使JBuilder中的tab键设为四个字符
- Struts是什么东西?能简单介绍一下吗?
- j2EE是什么呀,websphere呢?
http://www.math.grin.edu/~bishopd/csc223/network/EchoServer.java
http://www.math.grin.edu/~bishopd/csc223/network/EchoClient.java
http://www.math.grin.edu/~bishopd/csc223/network/EchoServer.java
http://www.math.grin.edu/~bishopd/csc223/network/EchoClient.java