java网络编程应该怎样在客户端和服务器间实现通信
以前写的,照贴了。。。服务器端:import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import java.net.*;/*6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。
* 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。
* (20分)(服务端程序和客户端程序分别命名为Server.java和Client.java)*/
public class N4BT6 extends Frame
{
DatagramSocket socket ;
DatagramPacket packet ;byte buf ;
File file ;
FileInputStream input;
String message = “该文件不存在“;
TextArea text;
public N4BT6(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
buf = new byte;
try
{
socket = new DatagramSocket(1230);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
file = new File(new String(packet.getData()));
socket = new DatagramSocket();
}
catch (Exception e)
{e.printStackTrace();
}
if(file.exists())
{
try
{
buf = new byte[(int)file.length()];
packet = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);
input = new FileInputStream(file);
input.read(buf);
socket.send(packet);
}
catch (IOException e)
{
e.printStackTrace();
}
}
else
{
try
{
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1234);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String args)
{
new N4BT6(“Server“);
}
}
客户端:import java.awt.*;
import java.awt.event.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class N4BT6_2 extends Frame
{
TextArea text;
String message = “Q.txt“;
DatagramSocket socket ;
DatagramPacket packet;
byte buf;
public N4BT6_2(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
try
{
socket = new DatagramSocket();
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1230);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
buf = new byte;
socket = new DatagramSocket(1234);
packet = new DatagramPacket(buf,buf.length);
socket.receive(packet);
text.append(new String(buf));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String args)
{
new N4BT6_2(“Client“);
}
}
java调用webservice接口具体怎么调用
Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。 1、编写代码方式: package com.yudun.test; import java.rmi.RemoteException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.message.PrefixedQName; import org.apache.axis.message.SOAPHeaderElement; import com.cezanne.golden.user.Exception; import com.cezanne.golden.user.UserManagerServiceProxy; import javax.xml.namespace.QName; import java.net.MalformedURLException; import javax.xml.rpc.ServiceException; import javax.xml.soap.Name; import javax.xml.soap.SOAPException; public class testWebService { public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException { //标识Web Service的具体路径 String endpoint = “WebService服务地址“; // 创建 Service实例 Service service = new Service(); // 通过Service实例创建Call的实例 Call call = (Call) service.createCall(); //将Web Service的服务路径加入到call实例之中. call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置 // 由于需要认证,故需要设置调用的SOAP头信息。 Name headerName = new PrefixedQName( new QName(“发布的wsdl里的targetNamespace里的url“, “string_itemName“) ); org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName); header.addTextNode( “blablabla“ ); call.addHeader(header); // SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(“发布的wsdl里的targetNamespace里的url“, “SoapHeader“); // soapHeaderElement.setNamespaceURI(“发布的wsdl里的targetNamespace里的url“); // try // { // soapHeaderElement.addChildElement(“string_itemName“).setValue(“blablabla“); // } // catch (SOAPException e) // { // e.printStackTrace(); // } // call.addHeader(soapHeaderElement); //调用Web Service的方法 org.apache.axis.description.OperationDesc oper; org.apache.axis.description.ParameterDesc param; oper = new org.apache.axis.description.OperationDesc(); oper.setName(“opName“); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(““, “arg0“), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“http://www.w3.org/2001/XMLSchema“, “string“), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(““, “arg1“), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“http://www.w3.org/2001/XMLSchema“, “string“), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName(““, “arg2“), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(“http://www.w3.org/2001/XMLSchema“, “string“), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param);
分享几个不错的Java视频网站
java视频免费下载
链接:https://pan.baidu.com/s/117W9HdLwut_LoHQsSAX04Q
java视频|53.mp4|52_定义输入输出格式.mp4|51_综合练习(二).mp4|50_综合练习(一).mp4|49_开发工具之Eclipse(四).mp4|48_开发工具之Eclipse(三).mp4|47_开发工具之Eclipse(二).mp4|46_开发工具之Eclipse(一).mp4|45_hashCode()与toString().mp4|44_equals函数的作用.mp4|43_类集框架(三).mp4|42_类集框架(二).mp4|41_类集框架(一).mp4|40_Java当中的数组.mp4-网络编程