java中shutdownoutput_socket.shutdownOutput()的目的

我正在使用下面的代码将数据发送到TCP服务器。我假设我需要使用socket.shutdownOutput()正确地指示客户端已完成发送请求。我的假设正确吗?如果不行,请让我知道目的shutdownOutput()。也感谢我可以做的任何进一步的优化。

客户

def address = new InetSocketAddress(tcpIpAddress, tcpPort as Integer)

clientSocket = new Socket()

clientSocket.connect(address, FIVE_SECONDS)

clientSocket.setSoTimeout(FIVE_SECONDS)

// default to 4K when writing to the server

BufferedOutputStream outputStream = new BufferedOutputStream(clientSocket.getOutputStream(), 4096)

//encode the data

final byte[] bytes = reqFFF.getBytes("8859_1")

outputStream.write(bytes,0,bytes.length)

outputStream.flush()

clientSocket.shutdownOutput()

服务器

ServerSocket welcomeSocket = new ServerSocket(6789)

while(true)

{

println "ready to accept connections"

Socket connectionSocket = welcomeSocket.accept()

println "accepted client req"

BufferedInputStream inFromClient = new BufferedInputStream(connectionSocket.getInputStream())

BufferedOutputStream outToClient = new BufferedOutputStream(connectionSocket.getOutputStream())

ByteArrayOutputStream bos=new ByteArrayOutputStream()

println "reading data byte by byte"

byte b=inFromClient.read()

while(b!=-1)

{

bos.write(b)

b=inFromClient.read()

}

String s=bos.toString()

println("Received request: [" + s +"]")

def resp = "InvalidInput"

if(s=="hit") { resp = "some data" }

println "Sending resp: ["+resp+"]"

outToClient.write(resp.getBytes());

outToClient.flush()

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值