您的位置:首页 > 理论基础 > 计算机网络

网络编程(二)

2016-05-20 09:42 441 查看
客户端

import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
//三次握手原理:客户端发送出去的内容会得到服务器端的响应
public class Client{//客户端先输出信息(写:以字符数组发送出去)再获取服务端响应信息(读:通过字符串输入流)
public static void main(String []args){
try{
Socket s=new Socket("127.0.0.1",8888);
InputStream in=s.getInputStream();//得到字节输入流对象
OutputStream out=s.getOutputStream();//得到字节输出流对象
//给服务器端写内容(请求)
String fu=System.getProperty("line.separator");
String str="中华人民共和国"+fu;
byte []bs=str.getBytes();//将字符串转换成字节数组
out.write(bs);//通过输出流把字符串信息发送出去

//得到服务器响应(接收服务器上的信息,用字符串输入流Buffered,(需要)这样用户才可以看懂)
InputStreamReader read=new InputStreamReader(in);
BufferedReader br=new BufferedReader(read);
String message=br.readLine();
System.out.println(message);
in.close();
out.close();
s.close();
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
}


服务端

import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Server{//服务端先接收客户端信息:字符串输入流(读),再响应客户端信息:通过字符数组写,发送出去信息(写)
public static void main(String []args){
try{
//创建Socket服务器对象
ServerSocket ss=new ServerSocket(8888);
Socket s=ss.accept();//当请求到来的时候,就是一个Socket
InputStream in=s.getInputStream();//获取此套接字的输入流
OutputStream out=s.getOutputStream();//获取此套接字的输出流

//服务器通过字符串输入流获取客户端信息
//创建一个字节数组,每次从输入流中获取大小为1024个字节
//byte []arr=new byte[1024];
//int len=in.read(arr);
//String message=new String(arr,0,len);
//System.out.println(message);

InputStreamReader read=new InputStreamReader(in);
BufferedReader br=new BufferedReader(read);
String message=br.readLine();
System.out.println(message);

//服务器输出信息代码:通过输出流给对方客户端(响应客户顿),
String str="万岁。。。";
byte []bs=str.getBytes();//将字符创转换成字节数组
out.write(bs);

in.close();
out.close();
}catch(Exception ex){
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: