import java.net.*;
import java.io.*;
public class MyConnection2
{
public static void main(String[] args) throws Exception
{
Socket socket = new Socket("www.ptpress.com.cn", 80);
// 向服务端程序发送数据
OutputStream ops = socket.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("hello world\r\n\r\n");
bw.flush();
// 从服务端程序接收数据
InputStream ips = socket.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String s = "";
while((s = br.readLine()) != null)
System.out.println(s);
socket.close();
}
}
在编写上面代码时要注意如下两点:
1. 为了提高数据传输的效率,Socket类并没有在每次调用write方法后都进行数据传输,而是将这些要传输的数据写到一个缓冲区里(默认是8192个字节),然后通过flush方法将这个缓冲区里的数据一起发送出去,因此,bw.flush();是必须的。
2. 在发送字符串时之所以在Hello World后加上 “\r\n\r\n”,这是因为HTTP协议头是以“\r\n\r\n”作为结束标志(HTTP协议的详细内容将在以后讲解),因此,通过在发送字符串后加入“\r\n\r\n”,可以使服务端程序认为HTTP头已经结束,可以处理了。如果不加“\r\n\r\n”,那么服务端程序将一直等待HTTP头的结束,也就是“\r\n\r\n”。如果是这样,服务端程序就不会向客户端发送响应信息,而br.readLine()将因无法读以响应信息面被阻塞,直到连接超时。
分享到:
相关推荐
C# 使用Socket发送和接收TCP数据,包含客户端和服务器端,发送Send,监听Listen ,C#运行环境VS2010
C#使用Socket发送和接收TCP数据,含客户端和服务器端程序,发送Send和监听Listen。测试可行。C#环境VS2010
刚刚学习socket的时候编写的程序,可以实现客户端连续向服务器发送三个数据,服务器端连续接受三个数据并返回给客户端处理结果
Socket类是负责处理客户端通信的Java类。本文主要是介绍java使用Socket类接收和发送数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
移动开发 Android Socket Socket发送并接收服务器返回的数据 个人整理 。
Socket 发送 接收 数据 c#Socket 发送 接收 数据 c#
使用Socket类接收和发送数据,使用Socket类接收和发送数据,使用Socket类接收和发送数据
用C#接收和发送文件,支持大文件传输。这是我在国外网站下载的。
C#使用socket发送和接受数据,一看就懂~~~非常适合新手!
基于raw socket的UDP数据的发送和接收,自定义IP头,UDP头,数据
A控制B,那A就是上位机,A发送协议内规定的一串数据,B接收到确认数据没错再返回其对应的数据。相对应的B就是下位机,plc常见的上位机有pc,HMI,其他plc,与pc通讯,
利用Socket发送接收数据-C#,这是一个SOCKET数据传送的C/S程序。
socket RS232 发送进程,接收数据进程,只要你更改一下设备文件fd,可以直接在linuxC环境下修改成为你自己想用的代码
ios bsd socket 客户端发送和接收数据
Android开发,Socket Client端和Socket Server端数据发送和接收
ABB机器人与S7-1200PLC通过Socket实现位置坐标数据发送和接收的具体方法
c#写的用于测试socket按固定格式和协议发送xml文件并解析和接收
VB使用Socket控件发送接收文件的例子
使用socket类实现c# UDP组播的发送和接收 ;可以指定专门网卡接收消息;
Socket通信,客户/服务端的数据发送与接收