Java Socket网络编程Client端详解
此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器之间的通信端点。
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!");
}
}
Java Socket网络编程Client端详解的更多相关文章
- Java Socket网络编程Server端详解
Socket通信:分为客户端和服务端的socket代码. Java SDK提供一些相对简单的Api来完成.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以开始网 ...
- Java Socket 网络编程心跳设计概念
Java Socket 网络编程心跳设计概念 1.一般是用来判断对方(设备,进程或其它网元)是否正常动行,一 般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于 ...
- Java Socket网络编程的经典例子(转)
事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作.Socket ...
- 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 ...
- Java Socket网络编程学习笔记(一)
0.前言 其实大概半年前就已经看过网络编程Socket的知识了(传统IO),但是因为长时间的不使用导致忘的一干二净,最近正好准备校招,又重新看了网络编程这一章, 是传统IO(BIO)相关的内容,故在此 ...
- java socket网络编程(多线程技术)
Client.java import java.io.*; import java.net.*; import java.util.*; public class Client { public st ...
- java socket 网络编程常见异常
1.java.net.SocketTimeoutException 这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(Socket ...
- Java Socket网络编程常见异常(转)
1.java.net.SocketTimeoutException 这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(Socket ...
- java基础-网络编程(Socket)技术选型入门之NIO技术
java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...
随机推荐
- windows系统上安装与使用Android NDK r8d(二)
四. 在eclipse中集成c/c++开发环境 1. 装Eclipse的C/C++环境插件:CDT,这里选择在线安装. 首先登录http://www.eclipse.or ...
- /etc/fstab格式的问题
[root@localhost etc]# cat fstab /dev/VolGroup00/LogVol00 / ext3 defaults ...
- Android 信息分享实现
一.短信分享 01Intent intent = new Intent(Intent.ACTION_SEND);02// intent.setType("text/plain"); ...
- 【spring】RestTemplate发送请求,请求第三方接口 的几种请求方式POST,GET,DELETE,PUSH
org.springframework.web.client.RestTemplate 参考地址:http://www.cnblogs.com/UniqueColor/p/7123347.html G ...
- Basic Messager
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- tyvj P1403 关押罪犯 题解
P1403 [NOIP2010]关押罪犯 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他 ...
- Windows之权限的继承性 累加性 优先性 交叉性及四项基本原则
Windows NT以后的文件,及文件夹共享设置有以下特性:继承性.累加性.优先性.交叉性. 继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的.这里还有一种情况要说明一下 ...
- Scurm 术语
角色 Product Owner Scrum Master Team 工件(Backlog) Product Backlog Sprint Backlog Burndown Backlog 活动 Sp ...
- jQuery序列化表单数据 serialize()、serializeArray()及使用
1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...
- 解决 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile)
在项目构建的时候遇到了这样的问题:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile ...