套接字的(客户端与服务器端的连接)

Client.java文件:

import java.io.*;
import java.net.*;
public class Client {
	public static void main(String args[]) {
		String [] mess = {"1+1在什么情况下不等于2", "狗为什么不生跳蚤","什么东西能看、能吃、能坐"};//用String类定义了一个字符串对象数组mess
		Socket mysocket;
		DataInputStream in = null;  //数据输入流in
		DataOutputStream out = null;  //数据输出流out
		try {
			mysocket = new Socket("127.0.0.1", 2010);   //Socket类客户端套接字对象mysocket
			in = new DataInputStream(mysocket.getInputStream()); 
			out = new DataOutputStream(mysocket.getOutputStream());
			/*
			 * getInputStream()的返回值是InputStream类对象
			 * getOutputStream()的返回值是OutputStream类对象
			 * DataInputStream创建的对象是数据输入流
			 * DataOutputStream创建的对象是数据输出流
			 * DataInputStream类继承了InputStream类   比InputStream多了一些方法
			 * DataOutputStream与上同理
			 * */
			for(int i = 0; i < mess.length; i++) {
				out.writeUTF(mess[i]);//writeUTF的作用是写入一个字符串 它是DataOutputStream类中的一个方法
				//此处是将mess[i]中的字符串写到out对象中
				String s = in.readUTF(); //readUTF的作用是读取一个UTF字符串   它是DataInputStream类中的一个方法   返回值是一个字符串的引用
				//in 读取信息  ,堵塞状态
				System.out.println("客户端收到服务端的回答:"+s);
				Thread.sleep(500);
			}
		}
		catch(Exception e) {
			System.out.println("服务器已经断开"+e);
		}
	}
}
//客户端的套接字和服务器端的套接字连接后
//客户端的输出数据流是服务器端的输入数据流
//客户端的输入数据流是服务器端的输出数据流



Server.java文件:

import java.io.*;
import java.net.*;
public class Server {
	public static void main(String args[]) {
		String [] answer = {"在算错的情况下","狗就能生狗","电视、面包、沙发"};//String类定义了一个字符串对象数组answer
		ServerSocket serverForClient = null;
		Socket socketOnServer = null;  //声明一个临时的套接字   下面要用于接受服务器套接字连接上的客户端的套接字
		DataOutputStream out = null;
		DataInputStream in = null;
		try {
			serverForClient = new ServerSocket(2010);//服务器建立了一个ServerSocket对象serverForClient用于与客户端套接字连接起来
			//从而达到客户端和服务器端的连接
			//记忆方法:
			//客户端的套接字用Socket类来定义
			//服务器端的套接字用ServerSocket类来定义
		}
		catch(IOException e1) {
			System.out.println(e1);
		}
		try {
			System.out.println("等待客户呼叫");
			socketOnServer = serverForClient.accept();  //用临时申请的socketOnServer套接字来接收通过服务器套接字连接上的客户端的套接字
			//accept()方法返回客户端的套接字
			out = new DataOutputStream(socketOnServer.getOutputStream());
			in = new DataInputStream(socketOnServer.getInputStream());
			for(int i = 0; i


你可能感兴趣的:(套接字的(客户端与服务器端的连接))