|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--waba.io.Stream
|
+--waba.io.Socket
Socket is a TCP/IP network socket.
Under Java and Windows CE, if no network is present, the socket constructor may hang for an extended period of time due to the implementation of sockets in the underlying OS. This is a known problem.
Here is an example showing data being written and read from a socket:
Socket socket = new Socket("http://www.superwaba.org", 80);
if (!socket.isOpen())
return;
byte []bytes = "GET / HTTP/1.0\n\n".getBytes();
socket.writeBytes(bytes,0,bytes.length);
byte buf[] = new byte[10];
int count = socket.readBytes(buf, 0, buf.length);
if (count == buf.length)
...
socket.close();
| Field Summary | |
protected Object |
_in
used just in the desktop side |
protected boolean |
_isOpen
used just in the desktop side |
protected Object |
_out
used just in the desktop side |
protected Object |
_socket
used just in the desktop side |
int |
lastError
Contains the last error caused by a method call on the PalmOS device only. |
boolean |
refreshBeforeEachRead
If set to true, the function NetLibConnectionRefresh will be called before each read/write. |
| Constructor Summary | |
protected |
Socket()
For internal use only |
|
Socket(String host,
int port)
Opens a socket. |
|
Socket(String host,
int port,
int timeout)
Opens a socket. |
|
Socket(String host,
int port,
int timeout,
boolean noLinger)
Opens a socket. |
| Method Summary | |
boolean |
close()
Closes the socket. |
static boolean |
disconnect()
Disconects the socket. |
boolean |
isOpen()
Returns true if the socket is open and false otherwise. |
int |
readBytes(byte[] buf,
int start,
int count)
Reads bytes from the socket into a byte array. |
boolean |
setReadTimeout(int millis)
Sets the timeout value for read operations. |
int |
writeBytes(byte[] buf,
int start,
int count)
Writes to the socket. |
| Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
toString,
wait,
wait |
| Field Detail |
public int lastError
SW Custom codes (See nmpalm_wabaio.c for details): 65526 (-10): INVALID_HOST 65525 (-11): NO_NET_LIBRARY_AVAILABLE 65524 (-12): NET_NOT_READY_FOR_OPEN 65523 (-13): NET_NOT_OPENED_PROPERLY 65522 (-14): ARRAY_RANGE_CHECKWindowsCE error codes: see winerror.h in the Windows SDK. Palm OS error codes.
Modem Error codes:
| NoTone | 4353 |
| NoCarrier | 4354 |
| LineBusy | 4355 |
| UserCancelled | 4356 |
| CmdError | 4357 |
| NoModem | 4358 |
| OutOfMemory | 4359 |
| PrefsNotSetup | 4360 |
| DialStringErr | 4361 |
| mdmErrNoPhoneNum | 4362 |
Net Error codes:
| AlreadyOpen | 4609 |
| NotOpen | 4610 |
| StillOpen | 4611 |
| ParamErr | 4612 |
| NoMoreSockets | 4613 |
| OutOfResources | 4614 |
| OutOfMemory | 4615 |
| SocketNotOpen | 4616 |
| SocketBusy | 4617 |
| MessageTooBig | 4618 |
| SocketNotConnected | 4619 |
| NoInterfaces | 4620 |
| BufTooSmall | 4621 |
| Unimplemented | 4622 |
| PortInUse | 4623 |
| QuietTimeNotElapsed | 4624 |
| Internal | 4625 |
| Timeout | 4626 |
| SocketAlreadyConnected | 4627 |
| SocketClosedByRemote | 4628 |
| OutOfCmdBlocks | 4629 |
| WrongSocketType | 4630 |
| SocketNotListening | 4631 |
| UnknownSetting | 4632 |
| InvalidSettingSize | 4633 |
| PrefNotFound | 4634 |
| InvalidInterface | 4635 |
| InterfaceNotFound | 4636 |
| TooManyInterfaces | 4637 |
| BufWrongSize | 4638 |
| UserCancel | 4639 |
| BadScript | 4640 |
| NoSocket | 4641 |
| SocketRcvBufFull | 4642 |
| NoPendingConnect | 4643 |
| UnexpectedCmd | 4644 |
| NoTCB | 4645 |
| NilRemoteWindowSize | 4646 |
| NoTimerProc | 4647 |
| SocketInputShutdown | 4648 |
| CmdBlockNotCheckedOut | 4649 |
| CmdNotDone | 4650 |
| UnknownProtocol | 4651 |
| UnknownService | 4652 |
| UnreachableDest | 4653 |
| ReadOnlySetting | 4654 |
| WouldBlock | 4655 |
| AlreadyInProgress | 4656 |
| PPPTimeout | 4657 |
| PPPBroughtDown | 4658 |
| AuthFailure | 4659 |
| PPPAddressRefused | 4660 |
| DNSNameTooLong | 4661 |
| DNSBadName | 4662 |
| DNSBadArgs | 4663 |
| DNSLabelTooLong | 4664 |
| DNSAllocationFailure | 4665 |
| DNSTimeout | 4666 |
| DNSUnreachable | 4667 |
| DNSFormat | 4668 |
| DNSServerFailure | 4669 |
| DNSNonexistantName | 4670 |
| DNSNIY | 4671 |
| DNSRefused | 4672 |
| DNSImpossible | 4673 |
| DNSNoRRS | 4674 |
| DNSAborted | 4675 |
| DNSBadProtocol | 4676 |
| DNSTruncated | 4677 |
| DNSNoRecursion | 4678 |
| DNSIrrelevant | 4679 |
| DNSNotInLocalCache | 4680 |
| DNSNoPort | 4681 |
| IPCantFragment | 4682 |
| IPNoRoute | 4683 |
| IPNoSrc | 4684 |
| IPNoDst | 4685 |
| IPktOverflow | 4686 |
| TooManyTCPConnections | 4687 |
| NoDNSServers | 4688 |
| InterfaceDown | 4689 |
| NoChannel | 4690 |
| DieState | 4691 |
| ReturnedInMail | 4692 |
| ReturnedNoTransfer | 4693 |
| ReturnedIllegal | 4694 |
| ReturnedCongest | 4695 |
| ReturnedError | 4696 |
| ReturnedBusy | 4697 |
| GMANState | 4698 |
| QuitOnTxFail | 4699 |
| FlexListFull | 4700 |
| SenderMAN | 4701 |
| IllegalType | 4702 |
| IllegalState | 4703 |
| IllegalFlags | 4704 |
| IllegalSendlist | 4705 |
| IllegalMPAKLength | 4706 |
| IllegalAddressee | 4707 |
| IllegalPacketClass | 4708 |
| BufferLength | 4709 |
| NiCdLowBattery | 4710 |
| RFinterfaceFatal | 4711 |
| IllegalLogout | 4712 |
| AAARadioLoad | 4713 |
| AntennaDown | 4714 |
| NiCdCharging | 4715 |
| AntennaWentDown | 4716 |
| NotActivated | 4717 |
| RadioTemp | 4718 |
| NiCdChargeError | 4729 |
| NiCdSag | 4720 |
| NiCdChargeSuspend | 4721 |
| reserved | 4722 |
| ConfigNotFound | 4723 |
| ConfigCantDelete | 4724 |
| ConfigTooMany | 4725 |
| ConfigBadName | 4726 |
| ConfigNotAlias | 4727 |
| ConfigCantPointToAlias | 4728 |
| ConfigEmpty | 4729 |
| AlreadyOpenWithOtherConfig | 4730 |
| ConfigAliasErr | 4731 |
| NoMultiPktAddr | 4732 |
| OutOfPackets | 4733 |
| MultiPktAddrReset | 4734 |
| StaleMultiPktAddr | 4735 |
| ScptPluginMissing | 4736 |
| ScptPluginLaunchFail | 4737 |
| ScptPluginCmdFail | 4738 |
| ScptPluginInvalidCmd | 4739 |
| TelMissingComponent | 4740 |
| TelErrorNotHandled | 4741 |
public boolean refreshBeforeEachRead
protected boolean _isOpen
protected Object _socket
protected Object _in
protected Object _out
| Constructor Detail |
protected Socket()
public Socket(String host,
int port)
host - the host name or IP address to connect toport - the port number to connect to
public Socket(String host,
int port,
int timeout)
host - the host name or IP address to connect toport - the port number to connect totimeout - the timeout (in ms) for opening the socket.
public Socket(String host,
int port,
int timeout,
boolean noLinger)
host - the host name or IP address to connect toport - the port number to connect totimeout - the timeout (in ms) for opening the socket. This should be 1500.noLinger - if true, the socket is closed immediately, and no ack is waited from the server. Note that this must be done for the very first socket creation per application.| Method Detail |
public boolean close()
public boolean isOpen()
public boolean setReadTimeout(int millis)
Calling this method currently has no effect under Win32 or WindowsCE. The read timeout under those platforms will remain the system default.
millis - timeout in milliseconds.
public int readBytes(byte[] buf,
int start,
int count)
buf - the byte array to read data intostart - the start position in the byte arraycount - the number of bytes to read
public int writeBytes(byte[] buf,
int start,
int count)
buf - the byte array to write data fromstart - the start position in the byte arraycount - the number of bytes to writepublic static boolean disconnect()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||