首页编程java编程java中send是什么意思 Java sendPost请求方法如何加入参数

java中send是什么意思 Java sendPost请求方法如何加入参数

编程之家2023-10-13116次浏览

这篇文章给大家聊聊关于java中send是什么意思,以及Java sendPost请求方法如何加入参数对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

java中send是什么意思 Java sendPost请求方法如何加入参数

java中的socket是什么意思

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。\x0d\x0a以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。\x0d\x0a重要的Socket API:\x0d\x0ajava.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。\x0d\x0a. Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。\x0d\x0a. getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。\x0d\x0a. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。\x0d\x0a注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。\x0d\x0a2ServerSocket类例子编辑\x0d\x0a\x0d\x0apackage com.lanber.socket;\x0d\x0aimport java.io.DataInputStream;\x0d\x0aimport java.io.DataOutputStream;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.net.ServerSocket;\x0d\x0aimport java.net.Socket;\x0d\x0apublic class ServerDemo{\x0d\x0a/**\x0d\x0a*注意:Socket的发送与接收是需要同步进行的,即客户端发送一条信息,服务器必需先接收这条信息,\x0d\x0a*而后才可以向客户端发送信息,否则将会有运行时出错。\x0d\x0a*@param args\x0d\x0a*/\x0d\x0apublic static void main(String[] args){\x0d\x0aServerSocket ss= null;\x0d\x0atry{\x0d\x0ass= new ServerSocket(8888);\x0d\x0a//服务器接收到客户端的数据后,创建与此客户端对话的Socket\x0d\x0aSocket socket= ss.accept();\x0d\x0a//用于向客户端发送数据的输出流\x0d\x0aDataOutputStream dos= new DataOutputStream(socket.getOutputStream());\x0d\x0a//用于接收客户端发来的数据的输入流\x0d\x0aDataInputStream dis= new DataInputStream(socket.getInputStream());\x0d\x0aSystem.out.println("服务器接收到客户端的连接请求:"+ dis.readUTF());\x0d\x0a//服务器向客户端发送连接成功确认信息\x0d\x0ados.writeUTF("接受连接请求,连接成功!");\x0d\x0a//不需要继续使用此连接时,关闭连接\x0d\x0asocket.close();\x0d\x0ass.close();\x0d\x0a} catch(IOException e){\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a3客户端的例子编辑\x0d\x0apackage com.lanber.socket;\x0d\x0aimportjava.io.DataInputStream;\x0d\x0aimport java.io.DataOutputStream;\x0d\x0aimportjava.io.IOException;\x0d\x0aimport java.io.OutputStream;\x0d\x0aimport java.net.Socket;\x0d\x0aimport java.net.UnknownHostException;\x0d\x0apublic class ClientDemo{\x0d\x0a/**\x0d\x0a*@param args\x0d\x0a*/\x0d\x0apublic static void main(String[] args){\x0d\x0aSocket socket= null;\x0d\x0atry{\x0d\x0asocket= new Socket("localhost",8888);\x0d\x0a//获取输出流,用于客户端向服务器端发送数据\x0d\x0aDataOutputStream dos= new DataOutputStream(socket.getOutputStream());\x0d\x0a//获取输入流,用于接收服务器端发送来的数据\x0d\x0aDataInputStream dis= new DataInputStream(socket.getInputStream());\x0d\x0a//客户端向服务器端发送数据\x0d\x0ados.writeUTF("我是客户端,请求连接!");\x0d\x0a//打印出从服务器端接收到的数据\x0d\x0aSystem.out.println(dis.readUTF());\x0d\x0a//不需要继续使用此连接时,记得关闭哦\x0d\x0asocket.close();\x0d\x0a} catch(UnknownHostException e){\x0d\x0ae.printStackTrace();\x0d\x0a} catch(IOException e){\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0a}

用的java,通信协议中上下行报文是什么意思

你可以了解一下http协议

报文就是一组客户端和服务端都认可的信息数据。可以是xml形式,json格式。等等

java中send是什么意思 Java sendPost请求方法如何加入参数

比如有一个android客户端向服务端发送登陆报文

<user>

<username>baidu</username>

java中send是什么意思 Java sendPost请求方法如何加入参数

<password>123456</password>

</user>

这段由客户端到服务端的xml,就可以视为一个上行报文

服务端收到报文后会返回登陆成功或者失败的信息

比如:200(成功)

404(失败)

甚至返回更详细的失败信息等等这个由服务端到客户端的返回信息同样可以是多样性,可视为下行报文

Java sendPost请求方法如何加入参数

/**

*向指定 URL发送POST方法的请求

*

*@param url

*发送请求的 URL

*@param param

*请求参数,请求参数应该是 name1=value1&name2=value2的形式。

*@return所代表远程资源的响应结果

*/

public static String sendPost(String url, String param){

PrintWriter out= null;

BufferedReader in= null;

String result="";

try{

URL realUrl= new URL(url);

//打开和URL之间的连接

URLConnection conn= realUrl.openConnection();

//设置通用的请求属性

conn.setRequestProperty("accept","*/*");

conn.setRequestProperty("connection","Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;SV1)");

//发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

//获取URLConnection对象对应的输出流

out= new PrintWriter(conn.getOutputStream());

//发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

//定义BufferedReader输入流来读取URL的响应

in= new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while((line= in.readLine())!= null){

result+= line;

}

} catch(Exception e){

System.out.println("发送 POST请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

JAVA的API是什么意思

API(Application Programming Interface,应用程序编程接口)是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么.API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll...). API声明正如在"什么是API"中所说,API函数包含在位于系统目录下的DLL文件中.你可以自己输入API函数的声明,但VB提供了一种更简单的方法,即使用API Text Viewer.要想在你的工程中声明API函数,只需运行API Text Viewer,打开Win32api.txt(或.MDB如果你已经把它转换成了数据库的话,这样可以加快速度.注:微软的这个文件有很多的不足,你可以试一下本站提供下载的api32.txt),选择"声明",找到所需函数,点击"添加(Add)"并"复制(Copy)",然后粘贴(Paste)到你的工程里.使用预定义的常量和类型也是同样的方法.你将会遇到一些问题:假设你想在你的窗体模块中声明一个函数.粘贴然后运行,VB会告诉你:编译错误...Declare语句不允许作为类或对象模块中的 Public成员...看起来很糟糕,其实你需要做的只是在声明前面添加一个Private(如 Private Declare Function...).--不要忘了,可是这将使该函数只在该窗体模块可用.在有些情况下,你会得到"不明确的名称"这样的提示,这是因为函数.常量或其他的什么东西共用了一个名称.由于绝大多数的函数(也可能是全部,我没有验证过)都进行了别名化,亦即意味着你可以通过Alias子句使用其它的而不是他们原有的名称,你只需简单地改变一下函数名称而它仍然可以正常运行.你可以通过查看VB的Declare语句帮助主题来获取有关Alias的详细说明.消息(Messages)好了,现在你已经知道什么是API函数了,但你也一定听说过消息(如果你还没有,你很快就会)并且想知道它是什么.消息是Windows告诉你的程序发生了哪些事件或要求执行特定操作的基本方法.例如,当用户点击一个按钮,移动鼠标,或是向文本框中键入文字时,一条消息就会被发送给你的窗体.所有发送的消息都有四个参数--一个窗口句柄(hwnd),一个消息编号(msg)还有两个32位长度(Long)的参数. hwnd即要接受消息的一个窗口的句柄,msg即消息的标识符(编号).该标识符是指引发消息的动作类型(如移动鼠标),另外两个参数是该消息的附加参数(例如当鼠标移动时光标的当前位置)但是,当消息发送给你时你为什么看不到呢--就象有人在偷你的信一样?请先别恼火,让我告诉你.小偷其实是Visual Basic.但它并没有偷走你的信,而是在阅读了之后挑出重要的以一种好的方式告诉你.这种方式就是你代码中的事件(Event).这样,当用户在你的窗体上移动鼠标时,Windows会发送一条WM_MOUSEMOVE消息给你的窗口,VB得到这条消息以及它的参数并运行你在事件MouseMove中的代码,同时VB会把这条消息的第二个32位数(它包含了x,y坐标,单位为像素(Pixel),每个位16位)转换为两个单精度数,单位为缇(Twip).现在,如果你需要光标坐标的像素表示,然而VB已经把它转换成了缇,因此你需要重新把它转换为以像素为单位.在这里,Windows给了你所需要的,但VB"好意地"进行了转换而使你不得不重新转换.你可能会问--我难道不能自己接收消息吗?答案是肯定的,你可以使用一种叫做子类处理(Subclass)的方法.但你除非必须否则最好不要使用,因为这与VB的安全程序设计有一点点的违背.(注:子类处理确实有很大的风险,但如果使用得当,是很有用处的.不过有一点一定要注意,即千万不要使用VB的断点调试功能,这可能会导致VB崩溃!)需要补充说明的是:你可以发送消息给你自己的窗口或其他的窗口,只需调用SendMessage或PostMessage(SendMessage会使接受到消息的窗口立刻处理消息,而PostMessage是把消息发送到一个称为消息队列的队列中去,等候处理(它将会在该消息处理完后返回,例如有些延迟)).你必须制定接受消息的窗口的句柄,欲发送消息的编号(所有的消息的编号均为常量,你可以通过API Text Viewer查得)以及两个32位的参数。详见: http://baike.baidu.com/view/16068.htm

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

nbl全国男子篮球联赛 nbl全国男子篮球联赛排名java什么是多进程,什么是JAVA的多线程