
用Java Socket编程,实现简单的Echo功能
如:客户端从键盘输入hi(当用户输出exit退出程序),服务器响应为hi(服务器要求为多线程)...
如:客户端从键盘输入hi(当用户输出exit退出程序),服务器响应为hi(服务器要求为多线程)
展开
3个回答
展开全部
// 服务器
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true) {
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("exit"))
break;
}
client.close();
}
}
}
// 客户端
import java.net.*;
import java.io.*;
public class Client{
static Socket server;
public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true) {
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("exit"))
break;
}
client.close();
}
}
}
// 客户端
import java.net.*;
import java.io.*;
public class Client{
static Socket server;
public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
追问
请问在那里编写服务器代码 和客户端代码
好像不是class里吧
追答
就是 在class里
两个class
一个服务器
一个客户端
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.net.Socket;
//客户端
public class Client {
public static void main(String[] args){
try {
Socket soc=new Socket("localhost",9999);
//客户端写线程
ClientWriter cw=new ClientWriter(soc);
cw.start();
//客户端读线程
ClientReader cr=new ClientReader(soc);
cr.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class ClientReader extends Thread{
private Socket cSoc;
public ClientReader(Socket cSoc){
this.cSoc=cSoc;
}
@Override
public void run() {
try {
while(true){
InputStream is=cSoc.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String mess=br.readLine();
System.out.println(mess);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ClientWriter extends Thread{
private Socket cSoc;
public ClientWriter(Socket cSoc){
this.cSoc=cSoc;
}
@Override
public void run() {
try {
while(true){
OutputStream os=cSoc.getOutputStream();
PrintWriter pw=new PrintWriter(os);
Scanner sc=new Scanner(System.in);
String mess=sc.nextLine();
pw.println(mess);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
//服务器
public class Service {
public static void main(String[] args){
try {
ServerSocket serverSoc=new ServerSocket(9999);
System.out.println("等待连接");
Socket soc=serverSoc.accept();
System.out.println("连接完毕");
//读线程
ServiceReader sr=new ServiceReader(soc);
sr.start();
//写线程
ServiceWriter sw=new ServiceWriter(soc);
sw.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class ServiceReader extends Thread{
private Socket sSoc;
public ServiceReader(Socket sSoc){
this.sSoc=sSoc;
}
public void run() {
try {
while(true){
InputStream is=sSoc.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String mess=br.readLine();
System.out.println(mess);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ServiceWriter extends Thread{
private Socket sSoc;
public ServiceWriter(Socket sSoc){
this.sSoc=sSoc;
}
@Override
public void run() {
try {
while(true){
OutputStream os=sSoc.getOutputStream();
PrintWriter pw=new PrintWriter(os);
Scanner sc=new Scanner(System.in);
String mess=sc.nextLine();
pw.println(mess);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//客户端
public class Client {
public static void main(String[] args){
try {
Socket soc=new Socket("localhost",9999);
//客户端写线程
ClientWriter cw=new ClientWriter(soc);
cw.start();
//客户端读线程
ClientReader cr=new ClientReader(soc);
cr.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class ClientReader extends Thread{
private Socket cSoc;
public ClientReader(Socket cSoc){
this.cSoc=cSoc;
}
@Override
public void run() {
try {
while(true){
InputStream is=cSoc.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String mess=br.readLine();
System.out.println(mess);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ClientWriter extends Thread{
private Socket cSoc;
public ClientWriter(Socket cSoc){
this.cSoc=cSoc;
}
@Override
public void run() {
try {
while(true){
OutputStream os=cSoc.getOutputStream();
PrintWriter pw=new PrintWriter(os);
Scanner sc=new Scanner(System.in);
String mess=sc.nextLine();
pw.println(mess);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
//服务器
public class Service {
public static void main(String[] args){
try {
ServerSocket serverSoc=new ServerSocket(9999);
System.out.println("等待连接");
Socket soc=serverSoc.accept();
System.out.println("连接完毕");
//读线程
ServiceReader sr=new ServiceReader(soc);
sr.start();
//写线程
ServiceWriter sw=new ServiceWriter(soc);
sw.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class ServiceReader extends Thread{
private Socket sSoc;
public ServiceReader(Socket sSoc){
this.sSoc=sSoc;
}
public void run() {
try {
while(true){
InputStream is=sSoc.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String mess=br.readLine();
System.out.println(mess);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ServiceWriter extends Thread{
private Socket sSoc;
public ServiceWriter(Socket sSoc){
this.sSoc=sSoc;
}
@Override
public void run() {
try {
while(true){
OutputStream os=sSoc.getOutputStream();
PrintWriter pw=new PrintWriter(os);
Scanner sc=new Scanner(System.in);
String mess=sc.nextLine();
pw.println(mess);
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// 服务器
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true) {
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("exit"))
break;
}
client.close();
}
}
}
// 客户端
import java.net.*;
import java.io.*;
public class Client{
static Socket server;
public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true) {
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("exit"))
break;
}
client.close();
}
}
}
// 客户端
import java.net.*;
import java.io.*;
public class Client{
static Socket server;
public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |