简单的一个服务器和客户端的交流实现,用网络编程的思想。还有之前的那些流的知识,话不多说,开始上代码
注意;在自己的电脑上进行测试的时候,你的先开服务器,再开启客户端
服务器如下:利用了tcp协议
package cn.kgc.basic.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 基于TCP协议进行的网络编程:
* 服务端
* @author 92126
*
*/
public class TCPServer {
public static void main(String[] args) {
ServerSocket serverSocket =null;
Socket clientScoket = null;
InputStream is = null;
BufferedReader br = null;
OutputStream os = null;
//----------接受客户端的请求----------------
try {
//1.指定端口号,创建serverSocke对象
serverSocket = new ServerSocket(8080);
//2.开启服务端来监听服务端的请求
clientScoket = serverSocket.accept();
//3.调用输入流来读取客户端的信息
is = clientScoket.getInputStream();
//4.为了读取的方便,讲流转换成高效字符流
br = new BufferedReader(new InputStreamReader(is));
System.out.println("客户端的请求信息为:");
String str = null;
while((str=br.readLine())!=null) {
System.out.println(str);
}
//-----------给客户端的相应--------------------
clientScoket.shutdownInput();
os = clientScoket.getOutputStream();
os.write("您的信息,服务端已经成功的接受,".getBytes());
} catch (Exception e) {
e.printStackTrace();
}finally {
//进行关流,先开的后关
try {
if(os!=null) {
os.close();
}
if(br!=null) {
br.close();
}
if(is!=null) {
is.close();
}
if(clientScoket!=null) {
clientScoket.close();
}
if(serverSocket!=null) {
serverSocket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
客户端如下:
package cn.kgc.basic.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* 基于TCP进行Socket编程:客户端
* @author 92126
*
*/
public class TCPClient {
@SuppressWarnings("resource")
public static void main(String[] args) {
Socket socket = null;
OutputStream os =null;
InputStream is =null;
BufferedReader br =null;
//*-*-----------发送请求---------------
try {
//1.指定服务器的端口和IP
socket = new Socket("localhost", 8080);
//2.获取输出流输出信息
os = socket.getOutputStream();
os.write("土豆土豆,我是地瓜,收到回答".getBytes());
//---------------接受响应---------------------
socket.shutdownOutput();
is = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
System.out.println("服务器的相应如下:");
String str =null;
while((str = br.readLine())!=null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
is.close();
os.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}