您的位置:首页 > 理论基础 > 计算机网络

JavaSE的有关网络编程的服务器与客户端的通信代码

2014-07-27 22:17 471 查看
这是我学习JavaSE标准版本以来,自己独立敲写的一个关于服务器和客户端的测试类,用于简单的通信,我坚信学习知识,就要按照自己的逻辑去敲写代码,虽然现在的知识还很淡薄,但是我希望每天的积累,都会让自己进步,所以坚持学好Java编程,是我最大的目标和梦想.如果有问题,希望能够多多指教,以后会多多写出自己想要表达的程序项目

//服务器端测试类

public class ServerSocketTest extends Thread {

public Socket client;

public static ArrayList<Socket> clientList= new ArrayList<Socket>();

public ServerSocketTest(Socket client) {// 构造器初始化客户端

this.client = client;

}

public void run() {

try {

InputStream in = client.getInputStream();

InputStreamReader isr = new InputStreamReader(in);

BufferedReader br = new BufferedReader(isr);

String msg = "";

InetAddress adress= client.getLocalAddress();

while ((msg = br.readLine()) != null) {

for(int i=0;i<clientList.size();i++){

Socket c=clientList.get(i);

OutputStream out= c.getOutputStream();

if(c!=client){

out.write((adress.getHostAddress()+"说:"+ msg+"\r\n").getBytes());

}

}

}

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

try {

ServerSocket server = new ServerSocket(8888);

while (true) {

Socket client = server.accept();

ServerSocketTest.clientList.add(client);

ServerSocketTest st=new ServerSocketTest(client);

OutputStream out= client.getOutputStream();

out.write("欢迎进入我的世界!Welcome to the world !".getBytes());

st.start();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

//客户端测试类

public class SocketTest extends Thread {

public Socket client;

public SocketTest(Socket client) {

this.client = client;

}

public void run() {

try {

OutputStream out = client.getOutputStream();

InputStream in = client.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String str = "";

while ((str = br.readLine()) != null) {

System.out.println(str);

}

out.flush();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

try {

Socket client = new Socket("192.168.0.129", 8888);

SocketTest st = new SocketTest(client);

st.start();

OutputStream out = client.getOutputStream();

Scanner sc = new Scanner(System.in);

while (true) {

String msg = sc.nextLine();

out.write((msg+"\r\n").getBytes());

out.flush();

}

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐