聊天服务器-客户端

package com.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientLogin {

public static void main(String[] args) {
    test1();

}

private static void test2() {
    try {
        Socket socket = new Socket("localhost", 8899);
        OutputStream os = socket.getOutputStream();
        ObjectOutputStream  oos = new ObjectOutputStream(os);
        User user = new User("张三", "12345");
        oos.writeObject(user);
        socket.shutdownOutput(); //关闭输出流

        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String reply = br.readLine();
        while(reply!=null){
            System.out.println("我是客户端,服务器端发来的信息是:"+reply);
            reply = br.readLine();
        }
        br.close();
        oos.close();
        socket.close();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


private static void test1() {
    try {
        Socket socket = new Socket("localhost", 8899);
        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        String info = "你好,我是JERRY";
        pw.write(info);
        info = "我是第一次来";
        pw.write(info);
        pw.flush();

        socket.shutdownOutput(); //关闭输出流

        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String reply = br.readLine();
        while(reply!=null){
            System.out.println("我是客户端,服务器端发来的信息是:"+reply);
            reply = br.readLine();
        }
        br.close();
        pw.close();
        socket.close();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

package com.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerLogin {

public static void main(String[] args) {
    test3();
}

private static void test2() {
    try {
        ServerSocket server = new ServerSocket(8899);
        Socket socket = server.accept();
        InputStream is = socket.getInputStream();
        ObjectInputStream ois = new ObjectInputStream(is);
        User user = (User) ois.readObject();

        System.out.println("我是服务器,客户端发来的信息是:" + user.getName() + "\t"
                + user.getPwd());

        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        String reply = "你好,我是服务器大神";
        pw.write(reply);

        pw.close();
        ois.close();
        socket.close();
        server.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

private static void test1() {
    try {
        ServerSocket server = new ServerSocket(8899);
        Socket socket = server.accept();
        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String info = br.readLine();
        while (info != null) {
            System.out.println("我是服务器,客户端发来的信息是:" + info);
            info = br.readLine();
        }

        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        String reply = "你好,我是服务器大神";
        pw.write(reply);
        pw.close();

        br.close();
        socket.close();
        server.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private static void test3() {
    try {
        ServerSocket server = new ServerSocket(8899);
        BufferedReader br=null;
        int num=1;
        while(true){
            Socket socket = server.accept();
            new ThreadSocket(socket).start();
            InputStream is = socket.getInputStream();
             br = new BufferedReader(new InputStreamReader(is));
            String info = br.readLine();
            while (info != null) {
                InetAddress ia = socket.getInetAddress();
                System.out.println(info+"-----"+num);
                System.out.println(ia.getHostAddress()+"-----"+ia.getHostName()+"----"+ia.getAddress()[0]);
                info = br.readLine();
            }
            num++;
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

package com.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ThreadSocket extends Thread{

Socket socket = null;

public ThreadSocket(Socket socket) {
    super();
    this.socket = socket;
}


@Override
public void run() {
    try {
        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        String reply = "你好,我是服务器大神";
        pw.write(reply);
        pw.close();
        socket.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

package com.socket;

import java.io.Serializable;

public class User implements Serializable{

private String name;
private String pwd;

public User(String name, String pwd) {
    super();
    this.name = name;
    this.pwd = pwd;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getPwd() {
    return pwd;
}
public void setPwd(String pwd) {
    this.pwd = pwd;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值