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;
}
}