32 #include <sys/types.h>
41 #if defined(ENABLE_JNI_HEADERS)
42 # include "native/include/com_sun_cldc_io_j2me_socket_Protocol.h"
61 struct hostent *phostent;
62 struct sockaddr_in serv_addr;
67 char*
name = (
char*) ba.get_raw_data_ptr();
71 phostent = gethostbyname(name);
78 serv_addr.sin_family = AF_INET;
79 serv_addr.sin_port = htons(port);
81 MCOPY(&serv_addr.sin_addr, phostent->h_addr,
u1, phostent->h_length);
85 int sockfd = socket(AF_INET, SOCK_STREAM, 0);
92 int result = connect(sockfd, (
struct sockaddr*) &serv_addr,
sizeof(serv_addr));
114 ssize_t result = recv(handle, buf, len, 0);
120 else if (result < 0) {
121 os::abort_errno(
"Java_com_sun_cldc_io_j2me_socket_Protocol_readBuf: recv failed");
138 ssize_t result = recv(handle, &byte, 1, 0);
144 else if (result < 0) {
146 os::abort_errno(
"Java_com_sun_cldc_io_j2me_socket_Protocol_readByte: recv failed");
166 ssize_t result = send(handle, buf, len, 0);
170 os::abort_errno(
"Java_com_sun_cldc_io_j2me_socket_Protocol_writeBuf: send failed");
184 char byte = (char) b;
187 ssize_t result = send(handle, &byte, 1, 0);
190 os::abort_errno(
"Java_com_sun_cldc_io_j2me_socket_Protocol_writeByte: send failed");
216 int result = close(handle);
219 os::abort_errno(
"Java_com_sun_cldc_io_j2me_socket_Protocol_close0: close failed");
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_writeBuf(JNIEnv *env, jclass clazz, jint handle, jbyteArray b, jint off, jint len)
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_readByte(JNIEnv *env, jclass clazz, jint handle)
Table containing all native methods registered with the VM.
NativeMethods & get_nativemethods()
void register_methods(Utf8String classname, const JNINativeMethod *methods, size_t count)
Register native methods with the VM.
static void abort_errno(const char *text,...)
Equal to abort_errnum, but uses errno to get the error number.
#define NATIVE_METHODS_COUNT
int8_t * get_raw_data_ptr()
JNIEnv jclass jobject const char * name
void _Jv_com_sun_cldc_io_j2me_socket_Protocol_init(void)
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_readBuf(JNIEnv *env, jclass clazz, jint handle, jbyteArray b, jint off, jint len)
static Utf8String from_utf8(const char *, size_t)
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_open0(JNIEnv *env, jclass clazz, jbyteArray hostname, jint port, jint mode)
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_available0(JNIEnv *env, jclass clazz, jint handle)
static JNINativeMethod methods[]
JNIEXPORT void JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_close0(JNIEnv *env, jclass clazz, jint handle)
#define MCOPY(dest, src, type, num)
static VM * get_current()
JNIEXPORT jint JNICALL Java_com_sun_cldc_io_j2me_socket_Protocol_writeByte(JNIEnv *env, jclass clazz, jint handle, jint b)