麻烦大家帮我看一下了,现在我是把武器的信息显示在Shop这个程序中,请问该怎么写入到Player缓冲区让它能够读取。
我是初学者,如果可以的话也麻烦大家帮我指出一些程序的不足,谢谢大家了。
public class Weapon //武器类
{
private String name;
private String price;
public Weapon(String n,String p)
{
name = n;
price = p;
}
public String getName()
{
return name;
}
public String getPrice()
{
return price;
}
public String toString()
{
return getName()+" "+getPrice();
}
}import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;public class Shop
{
ArrayList<Weapon> al;
public Shop()
{
al = new ArrayList<Weapon>();
}
public static void main(String[] args)
{
Shop shop = new Shop();
shop.addWeapon("AK47","$2500");
shop.addWeapon("M4a1","$3100");
shop.addWeapon("AWP","$4750");
shop.trade();
}
public void trade()
{
ServerSocket server = null;
Socket socket = null;
PrintWriter writer = null;
try {
server = new ServerSocket(5000);
} catch (IOException e) {
e.printStackTrace();
}
while(true)
{
try {
socket = server.accept();
} catch (IOException e) {
e.printStackTrace();
}
String message = "欢迎来到游戏装备商店,下面是本商店提供的武器";
try {
writer = new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.showWeapon(); //如何把武器写入到客户端中,让Player可以看到武器的名字和价格
writer.println(message);
writer.flush();
}
}
public void addWeapon(String name,String price)
{
al.add(new Weapon(name,price));
}
public void showWeapon()
{
Iterator it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}}import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;public class Player
{
public void goShop()
{
InetAddress hostaddress = null;
Socket client = null;
InputStreamReader input = null;
BufferedReader br;
String message = null;
try {
hostaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client = new Socket(hostaddress,5000);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
input = new InputStreamReader(client.getInputStream());
br = new BufferedReader(input);
while((message = br.readLine()) != null )
System.out.println(message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
Player p = new Player();
p.goShop();
}}
我是初学者,如果可以的话也麻烦大家帮我指出一些程序的不足,谢谢大家了。
public class Weapon //武器类
{
private String name;
private String price;
public Weapon(String n,String p)
{
name = n;
price = p;
}
public String getName()
{
return name;
}
public String getPrice()
{
return price;
}
public String toString()
{
return getName()+" "+getPrice();
}
}import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;public class Shop
{
ArrayList<Weapon> al;
public Shop()
{
al = new ArrayList<Weapon>();
}
public static void main(String[] args)
{
Shop shop = new Shop();
shop.addWeapon("AK47","$2500");
shop.addWeapon("M4a1","$3100");
shop.addWeapon("AWP","$4750");
shop.trade();
}
public void trade()
{
ServerSocket server = null;
Socket socket = null;
PrintWriter writer = null;
try {
server = new ServerSocket(5000);
} catch (IOException e) {
e.printStackTrace();
}
while(true)
{
try {
socket = server.accept();
} catch (IOException e) {
e.printStackTrace();
}
String message = "欢迎来到游戏装备商店,下面是本商店提供的武器";
try {
writer = new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.showWeapon(); //如何把武器写入到客户端中,让Player可以看到武器的名字和价格
writer.println(message);
writer.flush();
}
}
public void addWeapon(String name,String price)
{
al.add(new Weapon(name,price));
}
public void showWeapon()
{
Iterator it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}}import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;public class Player
{
public void goShop()
{
InetAddress hostaddress = null;
Socket client = null;
InputStreamReader input = null;
BufferedReader br;
String message = null;
try {
hostaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
client = new Socket(hostaddress,5000);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
input = new InputStreamReader(client.getInputStream());
br = new BufferedReader(input);
while((message = br.readLine()) != null )
System.out.println(message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
Player p = new Player();
p.goShop();
}}
解决方案 »
- 怎么import import static net.mindview.util.SwingConsole.*;这个包?
- byte类型的最小值为什么是-128而非-127?
- 请问 如何让2个类中的synchronized共享同一个锁
- 用户输入信息时,jsp自动显示相关信息(类似股票系统中查询股票的时候)
- 对Null和""的疑惑?
- 有没有返回对象类型原型的引用的关键字?
- java中的视频采集(高手请进)?
- java高手看过来!!!!!!!!!!!
- JIT Compiler 有没有Windows intel 版本的?
- 斑竹请进!!急急急
- 请帮我看一下哪里错了。谢谢。
- 谁能给我介绍一本讲解jdk源代码的书,最好是中文的(最好能讲的比较详细)
1 在shop里面用一个字段来存储,武器类的信息,如:name,price。然后用然后用set/get方法来设置和得到,
商店里的武器信息
2 在shop里面没改变武器信息的时候,就set一下武器信息,以便客户端获取时得到的时最新的信息
3 在客户端若要得到这商店的武器信息,则get方法的到了存储在商店的武器信息,然后在list给用户;