package com.wfn.socket2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author lyw11
* socket服务端与客户端通信
*/
public class SocketServerD {
public static void main(String[] args) {
//创建一个socket服务
ServerSocket serverSocket = null;
Socket socket = null;
BufferedReader reader = null;
BufferedWriter writer = null;
try {
serverSocket = new ServerSocket(9090);
serverSocket.accept();
//启用线程
new SocketThread(socket).start();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.wfn.socket2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
/**
* @author lyw11
* socket客户端与服务端通信
*/
public class SocketClient {
public static void main(String[] args) {
Socket socket = null;
BufferedReader reader = null;
BufferedWriter writer = null;
try {
//创建一个socket,连接server
socket = new Socket("localhost",1234);
//创建流IO,接收与发送信息
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//发送信息到server
writer.write("dfhj"+"\r\n");
writer.flush();
//读取server响应
String mess = reader.readLine()+"\n"; //添加\r\n,结束读取
System.out.println(mess);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.wfn.socket2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
/**
* @author lyw11
* socket中的线程
*/
public class SocketThread extends Thread{
Socket socket = null;
BufferedReader reader = null;
BufferedWriter writer = null;
public SocketThread(Socket s){
this.socket = s;
}
@Override
public void run(){
try {
//创建输入流与输出流用于读,取数据
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//读取客户端发送的信息
String mess = reader.readLine();
System.out.println("客户端发送的信息:"+mess);
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//返回响应
writer.write(mess);
writer.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
writer.close();
socket.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}