麻烦大家帮我看一下了,现在我是把武器的信息显示在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();
}}
解决方案 »
- 一道算法题(初中生的)
- 请问在含有Main方法的桌面程序中怎么使用数据源的方式连接SQL Server数据库
- SWT中如何清屏??
- 如何对一个字符串截位,要求一个区分中英文情况。也就是一个中文字算两位,而一个英文字母算一位?
- 关于java程序包装器,,高手救命!!!
- 高手才进来:RunTime和System的区别
- 高分求解Java和Asp交换用户登录信息的办法
- Socket类能否序列化?
- 我的程序编译拉!为什么窗口不能出现啊
- 调查:大家认为《Thinking in JAVA》一书对你最有启发的是哪三章?
- 请帮我看一下哪里错了。谢谢。
- 谁能给我介绍一本讲解jdk源代码的书,最好是中文的(最好能讲的比较详细)
1 在shop里面用一个字段来存储,武器类的信息,如:name,price。然后用然后用set/get方法来设置和得到,
商店里的武器信息
2 在shop里面没改变武器信息的时候,就set一下武器信息,以便客户端获取时得到的时最新的信息
3 在客户端若要得到这商店的武器信息,则get方法的到了存储在商店的武器信息,然后在list给用户;