慕圣0830664
去看下这个课程,专门讲的这个例子 http://www.imooc.com/learn/161给你些代码参照一下:/*
2017年5月10日13:06:53
TCP协议是面向连接、可靠的、有序的,以字节流的方式发送数据
基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
创建客户端大概步骤:
1、创建Socket对象,指明需要连接的服务器的地址和端口号
2、连接建立后,通过输出流向服务器端发送请求信息
3、通过输入流获取服务器响应的信息
4、关闭相关资源
*/
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端
public class Client {
public static void main(String[] args) {
try {
//创建客户端Socket,指定服务器地址和端口号,执行此语句时,自己向服务器端发送联接请求
Socket socket = new Socket("localhost", 8888);
//通过Socket类中的getOutputStream()方法获取字节输出流
OutputStream os = socket.getOutputStream();
//将字节输出流转换成PrintWriter打印流
PrintWriter pw = new PrintWriter(os);
//向服务器端发送信息
pw.write("用户名:zhangsan; 密码:123" );
//刷新缓冲区
pw.flush();
socket.shutdownOutput(); //关闭输出流
//通过输入流接收服务器端发送过来的信息
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String info = null;
while ((info = br.readLine()) != null) {
System.out.println("我是客记端,服务器端说:" + info);
}
socket.shutdownInput(); //关闭输入流
//关闭相关资源
br.close();
pw.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/*
2017年5月10日13:05:46
TCP协议是面向连接、可靠的、有序的,以字节流的方式发送数据
基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
创建服务器端大概步骤:
1、创建ServerSocket对象,绑定监听端口
2、通过accept()方法监听客户端请求
3、连接建立后,通过输入流读取客户端发送的请求信息
4、通过输出流向客户端发送响应信息
5、关闭相关资源
*/
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
//服务器端
public class Server {
public static void main(String[] args) {
try{
//创建一个服务端Socket,即ServerSocket,指定绑定的端口号,并监听此端口
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("***服务端即将启动,等待客户端的联接***");
//调用Socket类中的accept()方法监听客户端的请求
Socket socket = serverSocket.accept();
//调用Socket类中的getInputStream()方法,获取一个字节输入流
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(); //关闭输入流
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.write("欢迎光临!");
pw.flush();
//关闭相关资源
pw.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}