Java Socket Demo

TestServer.java

package com.xiami.testServer;

import java.net.ServerSocket;   
import java.net.Socket;   
import java.io.*;   
public class TestServer extends Thread {   
    private ServerSocket ss = null;   
    public TestServer(){   
        try {   
            ss = new ServerSocket(7456);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
    public void run(){   
        while(true){   
            try {   
                Socket socket = ss.accept();   
                ServerThread st = new ServerThread(socket);   
                st.start();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
    }   
    public static void main(String[] args) throws Exception {   
       new TestServer().start();   
    }   
  
}  


ServerThread.java

package com.xiami.testServer;

import java.io.BufferedReader;   
import java.io.InputStream;   
import java.io.InputStreamReader;   
import java.io.OutputStream;   
import java.io.PrintStream;   
import java.net.Socket;   
  
public class ServerThread extends Thread{   
    private Socket socket ;   
    public ServerThread(Socket socket){   
        this.socket = socket;   
    }   
    public void run(){   
        try{   
        InputStream is = socket.getInputStream();   
        OutputStream os = socket.getOutputStream();   
        BufferedReader br =    
        new BufferedReader(new InputStreamReader(is));   
        PrintStream ps = new PrintStream(os);   
        while(true){   
            String temp = br.readLine();//读取客户端输入的消息   
            ps.println("服务器端消息:" + temp);//服务器端简单处理一下。   
            if(temp.equals("bye")){   
                //如果客户端输入bye,推出循环结束。
            	break;   
            }   
        }   
        ps.close();   
        br.close();   
        socket.close();   
        }catch(Exception rr){   
            rr.printStackTrace();   
        }   
    }   
}  



TestClient.java

package com.xiami.testServer;

import java.io.BufferedReader;   
import java.io.InputStream;   
import java.io.InputStreamReader;   
import java.io.OutputStream;   
import java.io.PrintStream;   
import java.net.ServerSocket;   
import java.net.Socket;   
  
public class TestClient {   
    public static void main(String[] args) throws Exception{   
        Socket so = new Socket("127.0.0.1",7456);   
        InputStream is = so.getInputStream();   
        OutputStream os = so.getOutputStream();   
        BufferedReader br = //客户从server的输入流   
        new BufferedReader(new InputStreamReader(is));   
        PrintStream ps = new PrintStream(os);   
        InputStreamReader isr =    
            new InputStreamReader(System.in);   
        BufferedReader key = //从键盘的输入流   
            new BufferedReader(isr);   
        while(true){   
            String temp = key.readLine();   
            ps.println(temp);//因为server用的是readline,必须用println   
            System.out.println(br.readLine());   
            if(temp.equals("bye")){   
                Thread.sleep(1000);//为了把bye更好的发送   
                break;   
            }   
        }   
        key.close();
        ps.close();   
        br.close();   
        so.close();   
    }   
}  


运行方法:

首先运行TestServer.java启动服务器,开始监听7456端口,(7456端口为自定义端口。由于1-1024为某些系统的保留端口,请用1024以上的端口)

然后运行TestClient.java 在Cosole中输入一段文字。按回车后,便可以接受服务端返回的消息了。这样客户端和服务端便实现了通信。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值