java服务器和客户端_JAVA的服务器和客户端怎么做

╰半橙微兮° 2022-11-05 10:55 357阅读 0赞

展开全部

给你个例子。。

KKMultiServer.java

import java.net.*;

import java.io.*;

public class KKMultiServer

{

public static void main(String[] args) throws IOException

{

ServerSocket serverSocket = null;

boolean listening = true;

try {

serverSocket = new ServerSocket(4444);

} catch (IOException e) {

System.err.println(“Could not listen on port: 4444.”);

System.exit(-1);

}

while (listening)

new KKMultiServerThread(serverSocket.accept()).start();

serverSocket.close();

}

}

KKMultiServerThread.java

import java.net.*;

import java.io.*;

public class KKMultiServerThread extends Thread

{

private Socket socket = null;

public KKMultiServerThread(Socket socket) {

super(“KKMultiServerThread”);

this.socket = socket;

}

public void run()

{

try {

PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

BufferedReader in = new BufferedReader( new InputStreamReader(

socket.getInputStream()));

String inputLine, outputLine;

KnockKnockProtocol kkp = new KnockKnockProtocol();

outputLine = kkp.processInput(null);

out.println(outputLine);

while ((inputLine = in.readLine()) != null)

{

outputLine = kkp.processInput(inputLine);

out.println(outputLine);

if (outputLine.equals(“Bye”))

break;

}

out.close();

in.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

KnockKnockClient.java

import java.io.*;

import java.net.*;

public class KnockKnockClient

{

public static void main(String[] args) throws IOException

{

Socket kkSocket = null;

PrintWriter out = null;

BufferedReader in = null;

try {

kkSocket = new Socket(“hostname”, 4444);

out = new PrintWriter(kkSocket.getOutputStream(), true);

in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));

}

catch (UnknownHostException e) {

System.err.println(“Don’t know about host: taranis.”);

System.exit(1);

}

catch (IOException e) {

System.err.println(“Couldn’t get I/O for the connection to: biao.”);

System.exit(1);

}

BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

String fromServer;

String fromUser;

while ((fromServer = in.readLine()) != null)

{

System.out.println(“Server: “ + fromServer);

if (fromServer.equals(“Bye.”))

break;

fromUser = stdIn.readLine();

if (fromUser != null) {

System.out.println(“Client: “ + fromUser);

out.println(fromUser);

}

}

out.close();

in.close();

stdIn.close();

kkSocket.close();

}

}

KnockKnockProtocol.java

import java.net.*;

import java.io.*;

public class KnockKnockProtocol

{

private static final int WAITING = 0;

private static final int SENTKNOCKKNOCK = 1;

private static final int SENTCLUE = 2;

private static final int ANOTHER = 3;

private static final int NUMJOKES = 5;

private int state = WAITING;

private int currentJoke = 0;

private String[] clues = { “Turnip”, “Little Old Lady”, “Atch”, “Who”, “Who” };

private String[] answers = { “Turnip the heat, it’s cold in here!”,

“I didn’t know you could yodel!”,

“Bless you!”,

“Is there an owl in here?”,

“Is there an echo in here?” };

public String processInput(String theInput)

{

String theOutput = null;

if (state == WAITING) {

theOutput = “Knock! Knock!”;

state = SENTKNOCKKNOCK;

}

else if (state == SENTKNOCKKNOCK) {

if (theInput.equalsIgnoreCase(“Who’s there?”)) {

theOutput = clues[currentJoke];

state = SENTCLUE;

}

else {

theOutput = “You’re supposed to say \“Who’s there?\“! “ +

“Try again. Knock! Knock!”;

}

}

else if (state == SENTCLUE) {

if (theInput.equalsIgnoreCase(clues[currentJoke] + “ who?”)) {

theOutput = answers[currentJoke] + “ Want another? (y/n)”;

state = ANOTHER;

} else {

theOutput = “You’re supposed to say \“” + clues[currentJoke] + “ who?\“” +

“! Try again. Knock! Knock!”;

state = SENTKNOCKKNOCK;

}

}

else if (state == ANOTHER) {

if (theInput.equalsIgnoreCase(“y”)) {

theOutput = “Knock! Knock!”;

if (currentJoke == (NUMJOKES - 1))

currentJoke = 0;

else

currentJoke++;

state = SENTKNOCKKNOCK;

}

else {

theOutput = “Bye.”;

state = WAITING;

}

}

return theOutput;

}

}

客户端和服务器分别是那个类不用我告诉你了撒32313133353236313431303231363533e4b893e5b19e31333236373834

![2Q==][2Q]

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

[2Q]:

发表评论

表情:
评论列表 (有 0 条评论,357人围观)

还没有评论,来说两句吧...

相关阅读