android客户端代码如下
public class MainActivity extends Activity {
//声明EditText控件fenShu和Button
private EditText fenshu;
private Button dafen;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根据控件id来取得控件fenShu
fenshu = (EditText)findViewById(R.id.fenshu);
dafen = (Button)findViewById(R.id.dafen);
dafen.setOnClickListener(new DafenListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class DafenListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String fs = fenshu.getText().toString();
fenshu.setText("");
try {
DatagramSocket socket = new DatagramSocket(8090);
InetAddress serverAddress = InetAddress.getByName("218.66.218.190");
byte data [] = fs.getBytes();
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,8090);
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}pc客户端的代码如下
//窗口模块
public class Xianshiping{
public static void main (String args[]) {
ImageFrame frame = new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//socket模块
try {
//创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket = new DatagramSocket(8090);
byte data [] = new byte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据
socket.receive(packet);
//取得packet包内的数据放入一个String对象fenshu中
String fenshu = new String(packet.getData(),packet.getOffset(),packet.getLength());
ImageFrame IF=new ImageFrame(fenshu);
IF.paint(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} class ImageFrame extends JFrame{
//显示文本
String str = null;
ImageFrame(String str)
{
super();
this.str=str;
}
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font( "SansSerif ",Font.PLAIN,500));
g.drawString(str, 30, 550);
} //设置背景图片
public ImageFrame()
{
setTitle("ImageTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
ImagePanel panel = new ImagePanel();
add(panel);
}
public static final int DEFAULT_WIDTH=500;
public static final int DEFAULT_HEIGHT=500; }
class ImagePanel extends JPanel{
public ImagePanel(){
try{
image = ImageIO.read(new File("img.jpg"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(image==null) return;
int imageWidth=image.getWidth(this);
int imageHeight=image.getHeight(this);
g.drawImage(image,0,0,null);
for(int i=0;i*imageWidth<=getWidth();i++)
for(int j=0;j*imageHeight<=getHeight();j++)
if(i+j>0)
g.copyArea(0,0,imageWidth,imageHeight,i*imageWidth,j*imageHeight);
}
private Image image;
}
为什么我在android客户端中输入数字 PC客户端却没有反应,为什么?
public class MainActivity extends Activity {
//声明EditText控件fenShu和Button
private EditText fenshu;
private Button dafen;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根据控件id来取得控件fenShu
fenshu = (EditText)findViewById(R.id.fenshu);
dafen = (Button)findViewById(R.id.dafen);
dafen.setOnClickListener(new DafenListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class DafenListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String fs = fenshu.getText().toString();
fenshu.setText("");
try {
DatagramSocket socket = new DatagramSocket(8090);
InetAddress serverAddress = InetAddress.getByName("218.66.218.190");
byte data [] = fs.getBytes();
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,8090);
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}pc客户端的代码如下
//窗口模块
public class Xianshiping{
public static void main (String args[]) {
ImageFrame frame = new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//socket模块
try {
//创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket = new DatagramSocket(8090);
byte data [] = new byte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据
socket.receive(packet);
//取得packet包内的数据放入一个String对象fenshu中
String fenshu = new String(packet.getData(),packet.getOffset(),packet.getLength());
ImageFrame IF=new ImageFrame(fenshu);
IF.paint(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} class ImageFrame extends JFrame{
//显示文本
String str = null;
ImageFrame(String str)
{
super();
this.str=str;
}
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font( "SansSerif ",Font.PLAIN,500));
g.drawString(str, 30, 550);
} //设置背景图片
public ImageFrame()
{
setTitle("ImageTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
ImagePanel panel = new ImagePanel();
add(panel);
}
public static final int DEFAULT_WIDTH=500;
public static final int DEFAULT_HEIGHT=500; }
class ImagePanel extends JPanel{
public ImagePanel(){
try{
image = ImageIO.read(new File("img.jpg"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(image==null) return;
int imageWidth=image.getWidth(this);
int imageHeight=image.getHeight(this);
g.drawImage(image,0,0,null);
for(int i=0;i*imageWidth<=getWidth();i++)
for(int j=0;j*imageHeight<=getHeight();j++)
if(i+j>0)
g.copyArea(0,0,imageWidth,imageHeight,i*imageWidth,j*imageHeight);
}
private Image image;
}
为什么我在android客户端中输入数字 PC客户端却没有反应,为什么?
解决方案 »
- 数据库操作问题
- 关于android2.3, density问题,请高手指点
- 请问怎样判断程序运行在模拟器还是真机上?
- 请教 AnimationDrawable 与 声音结合的问题
- android中解析大图片的好办法
- 从短信或其他程序中提取号码保存到联系人,如何得到intent中的号码
- activity和service中用什么方法传递Intent参数?
- 新手安卓开发环境配置求助
- 微信刷卡支付 提交支付申请返回结果无post数据 急求解
- 如何实现图片上传取得进度,网上都没有直接可以用的,谁有是否可以分享一下,无限感激!
- ProgressDialog如何设置进度值为小数
- surfaceview调用Camera功能和使用Canvas画板
try {
//创建一个DatagramSocket对象,并指定监听的端口号
DatagramSocket socket = new DatagramSocket(8090);
byte data [] = new byte[1024];
//创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket(data,data.length);
//使用receive方法接收客户端所发送的数据
socket.receive(packet);
//取得packet包内的数据放入一个String对象fenshu中
String fenshu = new String(packet.getData(),packet.getOffset(),packet.getLength());
ImageFrame IF=new ImageFrame(fenshu);
IF.paint(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 这段代码不是serversocket吗?我用的是UDP协议
这里应该是这么写吧 :String fenshu = new String(packet.getData(),0,
packet.getLength());
哈哈
//使用receive方法接收客户端所发送的数据
socket.receive(packet);
在这 之后打印 log日志看看 packet的length 是多少 到底是没数据还是你没画出来
这个地址对吗?? 是不是 localhost的ip啊 !! 192.168.0.1 ???
换成 InetAddress serverAddress = InetAddress.getLocalHost(); 试试吧