此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器之间的通信端点。

Socket client = new Socket(ip,port);//创建一个流套接字并将其连接到指定 IP 地址的指定端口号。

以下为完整的客户端示例:

SocketClientDemo.java

public class SocketClientDemo
{
/**
* 向指定的地址发送请求数据
* @param ipAddr
* @param reqData
*/
public void sendReq(String ipAddr,String reqData)
{
Socket client = null;
BufferedReader br = null;
BufferedOutputStream bos = null;
String respStr = ""; //设置字符集编码格式
String characterCoding = "GBK"; //将ip:port 类型的字符串拆分
int dotPos = ipAddr.indexOf(":");
String ip = ipAddr.substring(0, dotPos).trim();
int port = Integer.parseInt(ipAddr.substring(dotPos+1).trim()); try
{
client = new Socket(ip,port);
//设置发送等待时间(单位:s)
client.setSoLinger(true, 5); //设置超时时间(单位:ms)
client.setSoTimeout(5000); //从client端获取输出流
bos = new BufferedOutputStream(client.getOutputStream());
bos.write(reqData.getBytes(characterCoding));
bos.flush(); br = new BufferedReader(new InputStreamReader(client.getInputStream()));
respStr = br.readLine();
System.out.println("respStr is:>>>>>>"+respStr);
}
catch (UnknownHostException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(br != null)
{
try
{
br.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(bos!=null)
{
try
{
bos.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(client!=null)
{
try
{
client.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}

测试类代码:

SocketClientTest.java

public class SocketClientTest
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
SocketClientDemo client = new SocketClientDemo();
client.sendReq("192.168.1.136:9997", "this is socket client!");
}
}

最新文章

  1. [翻译]——SQL Server使用链接服务器的5个性能杀手
  2. 推荐20款基于 jQuery & CSS 的文本效果插件
  3. get传递中文产生乱码的解决方式汇总
  4. [转]30分钟学会反向Ajax
  5. Codeforces Round #197 (Div. 2) : E
  6. elasticsearh 中每个节点中需要有相同的插件
  7. 2015第10周三jquery ui position
  8. this class is not key value coding-compliant for the key detailItem
  9. 简单的mvc之二:蜿蜒的管线
  10. vue各种插件汇总
  11. head里两个重要标签base和meta
  12. SQLServer修改表数据
  13. jar 包启动脚本
  14. [UI] UI things
  15. Linux Ubuntu下用Android NDK 生成独立交叉编译链
  16. Beta阶段第三篇Scrum冲刺博客-Day2
  17. 《数据挖掘:R语言实战》
  18. golang sizeof 占用空间大小
  19. C#中的Sealed和J#中的Final比较(转载)
  20. Codeforces Round #294 (Div. 2) A and B and Lecture Rooms(LCA 倍增)

热门文章

  1. Simple microcontroller-temperature measurement uses only a diode and a capacitor
  2. win7 系统装SQLServer2000 成功
  3. cocos3.0使用cocostudio动画帧结合地图对象键值创建精灵动画
  4. Linux使用jstat命令查看jvm的GC情况(转)
  5. ASP.NET Core 1.0 基础之配置
  6. linux ifconfig
  7. thymleaf th:text 和 th:utext 之间的区别
  8. 如何在jenkins上通过mvn方式运行sonar
  9. http://www.cnblogs.com/zhoujinyi/p/3437475.html
  10. asp中将系统货币符号¥改为美国货币符号$的做法