基于TCP通信的套接字Socket

来源:互联网 发布:win10不能显示可用网络 编辑:程序博客网 时间:2024/05/22 15:50
服务端/** * 基于tcp传输协议(浏览器就是基于http或者https应用协议,tcp传输协议的一个客户端) * @author Administrator * 1、创建服务端+端口 * 2.发送数据+接收数据 */public class Server {    public static void main(String[] args) {        try {            ServerSocket  server =new ServerSocket(8888);//不同协议可以采用相同的端口            Socket socket =server.accept();//等待被动请求建立连接            System.out.println("你请求到了,客户端建立连接");            String str ="这是我模拟的数据";            //1,处理字符串的一种方式BufferedWriter            /*BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));            writer.write(str);//阻塞式的方法,要么加上结束符,要么加上newline            writer.newLine();            writer.flush();//服务器不要关闭*/                  //2,处理字符串比较方便的另外一种流的方式DataOutputStream            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());                             dos.writeUTF(str);                             dos.flush();        } catch (IOException e) {            e.printStackTrace();        }    }}客户端/** * 建立客户端连接tcp的连接必须是服务端不能停止 * @author Administrator *1、建立客户端+地址和端口 *2、接收数据+发送数据 */public class Client {    public static void main(String[] args) {        try {            Socket client =new Socket("localhost",8888);//建立连接            //1,处理字符串的一种方式BufferedReader            /*BufferedReader reader =new BufferedReader(new InputStreamReader(client.getInputStream()));            String src =reader.readLine();            System.out.println(src);*/            //2,处理字符串比较方便的另外一种流的方式DataInputStream            DataInputStream dis = new DataInputStream(client.getInputStream());            String src=dis.readUTF();            System.out.println(src);        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击