TCP网络编程案例

InetAddress 类

相关方法:

getLocalHost:获取本机InetAddress对象。

getByName:根据指定主机名/域名获取ip地址对象。

getHostName:获取InetAddress对象的主机名。

getHostAddress:获取InetAddress对象的地址。

简单使用:

InetAddress inter = InetAddress.getByName("IP/域名");

Socket 

套接字(Socket)开发网络应用程序被广泛采用,以至于成为事实上的标准。

通信的两端都要有Socket,是两台机器间通信的端点和接口。

网络通信其实就是Socket间的通信。

Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。

一般主动发起通信的应用程序属客户端,等待通信请求的为服务端

相关方法:getOutputStream()和getInputStream。

可以实现TCP和UDP网络编程。

TCP网络编程实现

客户端:

//创建Socket对象,指明服务器端的IP和端口号

InetAddress inet = InetAddress.getLocalHost();

Socket socket = new Socket(inet, 服务端端口号);

/狭取一个输出流,用于输出数据

OutputStream os = socket.getOutputStream();

//写出数据居

os.write("你好".getBytes());

//设置结束标记,告诉服务端已经操作完毕

socket.shutdownOutput();

//获取一个输入流,获取服务端的回复

InputStream is = socket.getInputStream();

byte [] bf =new byte [1024]; 

int len=0;

while ((len=is. read(bf))!=-1){
	System.out.println(new String(bf,0,len));
}

//资源的关闭

os.close();

is.close();

socket.close();

服务器端:

//创建 服务器端的ServerSocket,指明自己的端口号

ServerSocket ss= new ServerSocket(9999);
//调用accept()表示接收来自于客户端的socket

Socket socket = ss.accept();

//获取输入流,用于接收数据

InputStream is = socket.getInputStream();

//读取客户端的数据,并输出

byte [] bf =new byte [1024]; 

int len=0;

while ((len=is. read(bf))!=-1){
	System.out.println(new String(bf,0,len));
}

//获取一个输出流,给客户端进行回复

OutputStream os = socket.getOutputStream();

//写出数据居

os. write ("处理完毕".getBytes());

/设置结束标记,告诉客户端已经操作完毕

socket.shutdownInput();

//资源的关闭

is.close();

os.close();

socket.close();

ss.close();

除shutdownInput()外在字符流中也可以用newLine()方法进行结束符的设置。

writer.flush():可以把信息刷新到管道中。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值