src/share/vm/utilities/ostream.cpp

Print this page
rev 3227 : 7157695: Add windows implementation of socket interface
Summary: Add imlp using winsock and changing some types.
Reviewed-by:
Contributed-by: nils.eliasson@oracle.com


1004 
1005 // Network access
1006 networkStream::networkStream() : bufferedStream(1024*10, 1024*10) {
1007 
1008   _socket = -1;
1009 
1010   int result = os::socket(AF_INET, SOCK_STREAM, 0);
1011   if (result <= 0) {
1012     assert(false, "Socket could not be created!");
1013   } else {
1014     _socket = result;
1015   }
1016 }
1017 
1018 int networkStream::read(char *buf, size_t len) {
1019   return os::recv(_socket, buf, (int)len, 0);
1020 }
1021 
1022 void networkStream::flush() {
1023   if (size() != 0) {
1024     int result = os::raw_send(_socket, (char *)base(), size(), 0);

1025     assert(result != -1, "connection error");
1026     assert(result == (int)size(), "didn't send enough data");
1027   }
1028   reset();
1029 }
1030 
1031 networkStream::~networkStream() {
1032   close();
1033 }
1034 
1035 void networkStream::close() {
1036   if (_socket != -1) {
1037     flush();
1038     os::socket_close(_socket);
1039     _socket = -1;
1040   }
1041 }
1042 
1043 bool networkStream::connect(const char *ip, short port) {
1044 


1004 
1005 // Network access
1006 networkStream::networkStream() : bufferedStream(1024*10, 1024*10) {
1007 
1008   _socket = -1;
1009 
1010   int result = os::socket(AF_INET, SOCK_STREAM, 0);
1011   if (result <= 0) {
1012     assert(false, "Socket could not be created!");
1013   } else {
1014     _socket = result;
1015   }
1016 }
1017 
1018 int networkStream::read(char *buf, size_t len) {
1019   return os::recv(_socket, buf, (int)len, 0);
1020 }
1021 
1022 void networkStream::flush() {
1023   if (size() != 0) {
1024     assert(!(size()>>31),"size() should be limited by buffer_max and never need 32 bits");
1025     int result = os::raw_send(_socket, (char *)base(), (int)size(), 0);
1026     assert(result != -1, "connection error");
1027     assert(result == (int)size(), "didn't send enough data");
1028   }
1029   reset();
1030 }
1031 
1032 networkStream::~networkStream() {
1033   close();
1034 }
1035 
1036 void networkStream::close() {
1037   if (_socket != -1) {
1038     flush();
1039     os::socket_close(_socket);
1040     _socket = -1;
1041   }
1042 }
1043 
1044 bool networkStream::connect(const char *ip, short port) {
1045