package zl.socket.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static int portNo = 3333;
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成方法存根
ServerSocket s = new ServerSocket(portNo);
System.out.println("The Server is start:" + s);
Socket socket = s.accept() ;
System.out.println("accept the client :" + socket) ;
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
OutputStream out = socket.getOutputStream();
PrintWriter write = new PrintWriter(out);
while(true){
String str = in.readLine();
if("byebye".equals(str))
break;
System.out.println("in server reveived the info:"+str);
write.write(str);
write.write("\n");
write.flush();
}
socket.close();
s.close();
}
}
package zl.socket.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成方法存根
InetAddress addr = InetAddress.getByName("localhost");
Socket socket = new Socket(addr,3333);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
OutputStream out = socket.getOutputStream();
PrintWriter write = new PrintWriter(out);
write.write("hello");
write.write("\n");
write.flush();
String str = in.readLine();
System.out.println(str);
write.write("byebye");
write.write("\n");
write.flush();
out.close();
socket.close();
}
}
注意 bufferedreader 的readLine 方法遇到回车符号结束,所以要在发送的时候记得在数据结尾加上回车标记,不然客户端和服务端会同时阻塞
socket简单通讯
猜你喜欢
转载自zjxs-sky100.iteye.com/blog/1608136
今日推荐
周排行