java Tcp/ip网络编程
原创
©著作权归作者所有:来自51CTO博客作者wx5e6caa8b9792d的原创作品,请联系作者获取转载授权,否则将追究法律责任
服务端
1.步骤:
创建serversocket,绑定监听端口
2.创建accept()方法,用来监听客户端请求.
3.建立连接后可以通过输入流来读取客户端的信息
4.通过输出流来向客户端发送信息
5.关闭相关资源
客户端:
创建socket对象,指明需要连接的服务器的地址和端口号
建立连接后,通过输出流向服务器端发送请求信息
通过输入流获取服务器返回的信息
关闭相关资源:
相关代码如下:
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
//创建Socket,制定服务器端的地址和端口
Socket cc=new Socket("localhost",8888);
//获取输出流,向服务器端发送信息
OutputStream out=cc.getOutputStream();//字节输出流
//将输出流包装成打印流
PrintWriter pw=new PrintWriter(out);
pw.write("账号是:admin ,密码是123456");
pw.flush();
cc.shutdownOutput();
cc.close();
//关闭资源
pw.close();
}
public class Server {
/**
* 基于tcp 协议的socket通信,实现用户登录
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建一个serversocket实例,并绑定指定的端口
ServerSocket serverSocket=new ServerSocket(8888);
//正式开始侦听
System.out.println("服务端启动,等待客户端链接*******************");
Socket ned=serverSocket.accept();
//3.实现数据的交互,获取客户端的登录信息,首先要获取字节输入流
InputStream red=ned.getInputStream();
//为提高读取的性能,要把他变成字符串的输入流
InputStreamReader read=new InputStreamReader(red);
//为字符流添加缓冲
BufferedReader bufferedReader=new BufferedReader(read);
//
String mm=null;
while ((mm=bufferedReader.readLine())!=null) {
System.out.println("我是服务器,客户端说:"+mm);
}
//关闭输入流
ned.shutdownInput();
//关闭相关的资源,
bufferedReader.close();
read.close();
red.close();
serverSocket.close();
ned.close();
}