import java.net.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;public class SocketChannelStruct
{
private SocketChannel socketChannel = null;
private Charset charset = Charset.forName("ISO-8859-1");
private CharsetDecoder decoder = charset.newDecoder();
private CharsetEncoder encoder = charset.newEncoder();
SocketChannelStruct(SocketChannel socketChannel)
{
this.socketChannel = socketChannel;
try
{
socketChannel.open();
socketChannel.configureBlocking(true);
}
catch (Exception e)
{
}
}
public String read()
{
String returnStr = "";
try
{
ByteBuffer inBuffer = ByteBuffer.allocateDirect(1024);
socketChannel.read(inBuffer);
inBuffer.flip();
System.out.println(inBuffer);
CharBuffer charBuffer = CharBuffer.allocate(1024);
decoder.decode(inBuffer, charBuffer, false);
charBuffer.flip();
returnStr = String.valueOf(charBuffer);
System.out.println("returnStr is : "+returnStr);
//System.out.println("begin SubPass :" + returnStr);
//AddPassword add = new AddPassword(returnStr);
//returnStr = add.SubPass();
//System.out.println("after SubPass :" + returnStr);
inBuffer.clear();
//charBuffer.clear();
}
catch (Exception e)
{
System.out.println("error in read of ConnectServer.java" + e);
}
return returnStr;
}
public void write(String outStr)
{
try
{
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
//AddPassword add = new AddPassword(outStr);
//outStr = add.AddPass();
//int limit = byteBuffer.limit();
CharBuffer charBuffer = CharBuffer.wrap(outStr);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
encoder.encode(charBuffer, byteBuffer, false);
byteBuffer.flip();
System.out.println(byteBuffer);
socketChannel.write(byteBuffer);
System.out.println("send ok");
byteBuffer.clear();
}
catch (Exception e)
{
System.out.println("error in write of ConnectServer.java" + e);
}
}
public void close()
{
if (socketChannel != null)
{
try
{
socketChannel.close();
}
catch (Exception e)
{
System.out.println("error in close of ConnectServer.java" + e);
}
}
}
}
import java.nio.*;
import java.nio.channels.*;
import java.nio.charset.*;public class SocketChannelStruct
{
private SocketChannel socketChannel = null;
private Charset charset = Charset.forName("ISO-8859-1");
private CharsetDecoder decoder = charset.newDecoder();
private CharsetEncoder encoder = charset.newEncoder();
SocketChannelStruct(SocketChannel socketChannel)
{
this.socketChannel = socketChannel;
try
{
socketChannel.open();
socketChannel.configureBlocking(true);
}
catch (Exception e)
{
}
}
public String read()
{
String returnStr = "";
try
{
ByteBuffer inBuffer = ByteBuffer.allocateDirect(1024);
socketChannel.read(inBuffer);
inBuffer.flip();
System.out.println(inBuffer);
CharBuffer charBuffer = CharBuffer.allocate(1024);
decoder.decode(inBuffer, charBuffer, false);
charBuffer.flip();
returnStr = String.valueOf(charBuffer);
System.out.println("returnStr is : "+returnStr);
//System.out.println("begin SubPass :" + returnStr);
//AddPassword add = new AddPassword(returnStr);
//returnStr = add.SubPass();
//System.out.println("after SubPass :" + returnStr);
inBuffer.clear();
//charBuffer.clear();
}
catch (Exception e)
{
System.out.println("error in read of ConnectServer.java" + e);
}
return returnStr;
}
public void write(String outStr)
{
try
{
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
//AddPassword add = new AddPassword(outStr);
//outStr = add.AddPass();
//int limit = byteBuffer.limit();
CharBuffer charBuffer = CharBuffer.wrap(outStr);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
encoder.encode(charBuffer, byteBuffer, false);
byteBuffer.flip();
System.out.println(byteBuffer);
socketChannel.write(byteBuffer);
System.out.println("send ok");
byteBuffer.clear();
}
catch (Exception e)
{
System.out.println("error in write of ConnectServer.java" + e);
}
}
public void close()
{
if (socketChannel != null)
{
try
{
socketChannel.close();
}
catch (Exception e)
{
System.out.println("error in close of ConnectServer.java" + e);
}
}
}
}
解决方案 »
- 一道优酷软件的笔试题
- 请问哪里可以下载iTextAsian.jar?`~~~~急
- 如何解决JTree中不同结点设置不同图标?
- 为Label标签的边框设置线型
- 为什么数据传不到BEAN中??菜鸟求高手帮忙,急~~急
- eclipse+lomboz+tomcat遇到的问题,显示不能解析导入javabean
- 求算法
- 简单问题请高手解决!
- java代码的安全
- 问题1:我在一个类里有定义了一个类,编译总出错,而把里面的类放到外面定义,就可以.请问为啥?问题2:如何将一浮点数保留2位小数输出?
- 在JTabel,defaultTableModel上增加一行,如何已选中新增加的行?请教
- 向已经存在的结果集里添加记录
在下也不会帮你顶