com.intel.bluetooth.gcf.socket.SocketConnection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bluecove Show documentation
Show all versions of bluecove Show documentation
BlueCove is JSR-82 J2SE implementation that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth stack
The newest version!
/**
* MicroEmulator
* Copyright (C) 2001-2007 Bartek Teodorczyk
* Copyright (C) 2006-2008 Vlad Skarzhevskyy
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
* @version $Id: SocketConnection.java 2416 2008-10-09 17:59:55Z skarzhevskyy $
*/
package com.intel.bluetooth.gcf.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class SocketConnection implements javax.microedition.io.SocketConnection {
protected Socket socket;
public SocketConnection() {
}
public SocketConnection(String host, int port) throws IOException {
this.socket = new Socket(host, port);
}
public SocketConnection(Socket socket) {
this.socket = socket;
}
public String getAddress() throws IOException {
if (socket == null || socket.isClosed()) {
throw new IOException();
}
return socket.getInetAddress().toString();
}
public String getLocalAddress() throws IOException {
if (socket == null || socket.isClosed()) {
throw new IOException();
}
return socket.getLocalAddress().toString();
}
public int getLocalPort() throws IOException {
if (socket == null || socket.isClosed()) {
throw new IOException();
}
return socket.getLocalPort();
}
public int getPort() throws IOException {
if (socket == null || socket.isClosed()) {
throw new IOException();
}
return socket.getPort();
}
public int getSocketOption(byte option) throws IllegalArgumentException,
IOException {
if (socket != null && socket.isClosed()) {
throw new IOException();
}
switch (option) {
case DELAY:
if (socket.getTcpNoDelay()) {
return 1;
} else {
return 0;
}
case LINGER:
int value = socket.getSoLinger();
if (value == -1) {
return 0;
} else {
return value;
}
case KEEPALIVE:
if (socket.getKeepAlive()) {
return 1;
} else {
return 0;
}
case RCVBUF:
return socket.getReceiveBufferSize();
case SNDBUF:
return socket.getSendBufferSize();
default:
throw new IllegalArgumentException();
}
}
public void setSocketOption(byte option, int value)
throws IllegalArgumentException, IOException {
if (socket.isClosed()) {
throw new IOException();
}
switch (option) {
case DELAY:
int delay;
if (value == 0) {
delay = 0;
} else {
delay = 1;
}
socket.setTcpNoDelay(delay == 0 ? false : true);
break;
case LINGER:
if (value < 0) {
throw new IllegalArgumentException();
}
socket.setSoLinger(value == 0 ? false : true, value);
break;
case KEEPALIVE:
int keepalive;
if (value == 0) {
keepalive = 0;
} else {
keepalive = 1;
}
socket.setKeepAlive(keepalive == 0 ? false : true);
break;
case RCVBUF:
if (value <= 0) {
throw new IllegalArgumentException();
}
socket.setReceiveBufferSize(value);
break;
case SNDBUF:
if (value <= 0) {
throw new IllegalArgumentException();
}
socket.setSendBufferSize(value);
break;
default:
throw new IllegalArgumentException();
}
}
public void close() throws IOException {
// TODO fix differences between Java ME and Java SE
socket.close();
}
public InputStream openInputStream() throws IOException {
return socket.getInputStream();
}
public DataInputStream openDataInputStream() throws IOException {
return new DataInputStream(openInputStream());
}
public OutputStream openOutputStream() throws IOException {
return socket.getOutputStream();
}
public DataOutputStream openDataOutputStream() throws IOException {
return new DataOutputStream(openOutputStream());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy