日期:2014-05-20  浏览次数:20806 次

简单的Socket类的使用
这两天在搞使用Socket类,TCP  但是即使照搬书上的例子,连简单的Server端和Client端的相互应对都 没反应,实在是找不出原因,举个例子:
服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class Server {
public static void main(String args[]) {
try {
ServerSocket ss = new ServerSocket(7777);
System.out.println("服务器端在7777端口监听……");
Socket s = ss.accept();
System.out.println("已有客户端连接过来,开始进行通信……");
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String str = br.readLine();
System.out.println("=============下面是客户端发送来的消息================");
System.out.println(str);
PrintWriter pw = new PrintWriter(out);
System.out.println("正在向客户端发送消息……");
pw.write("客户端你好,这里是服务器端……");
pw.flush();
System.out.println("想客户端发送消息完成。");

br.close();
pw.close();
ss.close();
s.close();
}catch (UnknownHostException e) {
System.out.println("无法找到相应的机器,错误信息。"+e.getMessage());
}catch (IOException e) {
System.out.println("数据传输出现错误:"+e.getMessage());
}
}
}

客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
public static void main(String args[]) {
byte[] addr = new byte[] {127,0,0,1};
try {
InetAddress local = InetAddress.getByAddress(addr);
Socket s = new Socket(local,7777);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
System.out.println("正在向服务器端发送消息……");
PrintWriter pw = new PrintWriter(out);
pw.write("服务器端你好,这里是客户端……");
//pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String str1 = br.readLine();
System.out.println("========下面是服务器端发来的消息======== ");
System.out.println(str1);
System.out.println("===================");

pw.close();
br.close();
s.close();
System.out.println("向服务器端发送消息揭示。");
}catch (UnknownHostException e) {
System.out.println("无法找到相应的机器,错误信息。"+e.getMessage());
}catch (IOException e) {
System.out.println("数据传输出现错误:"+e.getMessage());
}
}
}

运行结果就死这里了:
socket