socket server类,接收请求
package com.wonder.socketexample;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class SocketServer {
ServerSocket serverSocket = null;
Socket socket = null;
DataInputStream inStream = null;
DataOutputStream outStream = null;
public SocketServer() {
try {
serverSocket = new ServerSocket(6600);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SocketServer socketServer = new SocketServer();
socketServer.waitForClient();
}
public void waitForClient() {
try {
// 获取socket,设置inStream和outStream
socket = serverSocket.accept();
inStream = new DataInputStream(socket.getInputStream());
outStream = new DataOutputStream(socket.getOutputStream());
outStream.writeUTF("ready!");
// socket.setSoTimeout(3000);
// 接收和发送数据
acceptAndSendData();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void acceptAndSendData() {
boolean flag = true;
while (flag) {
try {
String acceptStr = inStream.readUTF();
System.out.println("客户端输入信息:" + acceptStr);
if ("exit".equals(acceptStr)) {
System.out.println("服务结束。");
break;
} else {
String sendStr = String.valueOf("服务器处理:"+new Date());
outStream.writeUTF(sendStr);
}
} catch (IOException e) {
e.printStackTrace();
break;
}
}
}
}
-----------------------------------------
socketclient例子,输入内容,然后发给socket ,exit退出
package com.wonder.socketexample;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class SocketClient {
Socket socket = null;
DataInputStream inStream = null;
DataOutputStream outStream = null;
public SocketClient() {
try {
init();
waitData();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void waitData() {
boolean flag = true;
while (flag) {
try {
String acceptStr = inStream.readUTF();
System.out.println("客户端接收到: " + acceptStr);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while (str != null) {
System.out.print("> prompt ");
str = in.readLine();
if("exit".equals(str)){
System.out.println("系统退出。");
outStream.writeUTF(str);
return;
}
outStream.writeUTF(str);
}
} catch (Exception e) {
e.printStackTrace();
break;
}
}
}
private void init() throws UnknownHostException, IOException {
socket = new Socket("127.0.0.1", 6600);
inStream = new DataInputStream(socket.getInputStream());
outStream = new DataOutputStream(socket.getOutputStream());
// socket.setSoTimeout(3000);
}
public static void main(String[] args) {
SocketClient client = new SocketClient();
}
}