package 网络基础知识;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServerSocket {
/*
* 2016/11/19
* 基于TCP的ServerSocket
*/
public static void main(String[] args) {
try {
//创建一个服务器端Socket,并指定监听端口
ServerSocket ser=new ServerSocket(8888);
int count=0;
//开始监听
System.out.println("====请系好安全带,服务器即将启动====");
while(true){
Socket socket=ser.accept();
SocketThread st=new SocketThread(socket);
//启动线程
st.start();
count++;
InetAddress address=socket.getInetAddress();
System.out.println("客户端的IP:"+address.getHostAddress());
System.out.println("已连接用户:"+count);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package 网络基础知识;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class TCPClientSocket {
public static void main(String[] args) {
try {
//创建客户端Socket,制定服务器地址和端口
Socket socket=new Socket("localhost",8888);
//获取输出流,向服务器端发送信息
OutputStream os=socket.getOutputStream();
OutputStreamWriter osr=new OutputStreamWriter(os);
PrintWriter pw=new PrintWriter(osr);
pw.write("用户名:Sam;密码:8888888");
pw.flush();//发出信息
//关闭输出、输出流
socket.shutdownOutput();
InputStream is=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String info=null;
while((info=br.readLine())!=null)
System.out.println("我是客户端,服务器说:"+info);
socket.shutdownInput();
//关闭其他资源
os.close();
osr.close();
pw.close();
is.close();
isr.close();
br.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}