/[cvs]/api/Classes/NetWork/NetWorkTools.cpp
ViewVC logotype

Contents of /api/Classes/NetWork/NetWorkTools.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (vendor branch)
Sun Jul 1 20:47:58 2001 UTC (22 years, 10 months ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
First import

1 #include "NetWorkTools.h"
2 #include "../System/System.h"
3 #include "../System/SystemDefine.h"
4 #include "../String/String.h"
5 #include "../NetWork/MutexHandler.h"
6
7 //sigaction SIGPIPE SIG_IGN
8
9 NetWorkTools::NetWorkTools(){}
10 NetWorkTools::~NetWorkTools(){}
11
12
13 int NetWorkTools::sendData(int socket, char *buffer, int size)
14 {
15 int forward=0;
16 int packetSize=1024;
17
18 while ( size != 0 )
19 {
20 size-=packetSize;
21
22 if ( size < 0 )
23 {
24 packetSize+=size;
25 size=0;
26 }
27 //MSG_DONTWAIT
28 //MSG_NOSIGNAL
29 int nTemp = send(socket, buffer+forward, packetSize, MSG_NOSIGNAL);
30
31 if (nTemp > 0)
32 {
33 forward+=nTemp;
34 }
35 else if (nTemp == SOCKET_ERROR)
36 {
37 return 0;
38 }
39 else
40 {
41 // Client closed connection before we could reply to
42 // all the data it sent, so bomb out early.
43 // System::println("Peer unexpectedly dropped connection!");
44 return 2;
45 }
46 }
47
48 return 1;
49 }
50
51 /*
52 int NetWorkTools::sendData(int socket, char *buffer, int size)
53 {
54
55
56 int forward=0;
57
58 String kalle="socketIn ";
59 System::println(kalle + socket + "start socket send");
60
61 pthread_mutex_t mut=MutexHandler::getMutex();
62 */
63 /*
64 char *tempBuffer=(char*)malloc(size);
65
66 for ( int i=0; i<size ; i++ )
67 {
68 tempBuffer[i]=buffer[i];
69 }
70
71 System::println("extraBuffer");
72 */
73 //=-1;
74 // int packetSize=1;
75
76 // while (size!=0)
77 // {
78
79 // if ( (forward+packetSize) > 0 && forward >= 0 && (forward+packetSize) <= tempSize )
80 // {
81 /* System::println(forward);
82 System::println(packetSize);
83 System::println(tempSize);
84 */
85
86
87 /*
88 int nTemp = write(socket, buffer+forward, 1);
89
90
91 String arne="nTemp : ";
92
93 System::println(arne + nTemp);
94 */
95
96 // pthread_mutex_lock(&mut);
97
98 /*
99 int error = 1;
100 for ( int i=0; i<size ; i++ )
101 {
102 error = write(socket, &buffer[i], 1);
103 if(error != 1)
104 {
105 System::println("abryt");
106 break;
107 }
108 else
109 {
110 System::println("ntemp");
111 }
112 }
113 */
114 // pthread_mutex_lock(&mut);
115
116
117 // String kalle="socketIn ";
118 // System::println(kalle + socket + "start socket send");
119
120 // System::println(nTemp);
121
122 // pthread_mutex_unlock(&mut);
123 /* }
124 else
125 {
126 String kalle="socketIn2 ";
127 System::println(kalle + socket);
128
129 return 1;
130 }
131
132
133 */
134 /* if (nTemp==0)
135 {
136 // String kalle2="socketIn ";
137 // System::println(kalle2 + socket + "end socket send");
138 System::println(3);
139
140 break;
141 // return 1;
142
143 }
144 */
145 /* if (nTemp > 0)
146 {
147 forward+=1;
148 size-=1;
149 }
150
151 if (nTemp == -1)
152 {
153 // String kalle="socketIn4 ";
154 // System::println(kalle + socket);
155 System::println(2);
156 return;
157 // return 0;
158 }
159
160 if(nTemp != 1) {
161 System::println("avbryta loppen");
162 return ;
163 }
164 */
165 /*
166 if (nTemp == 0 )
167 {
168 // Client closed connection before we could reply to
169 // all the data it sent, so bomb out early.
170 // System::println("Peer unexpectedly dropped connection!");
171
172 String kalle="socketIn5 ";
173 System::println(kalle + socket);
174
175 return 2;
176 }
177
178 }
179 */
180 /* System::println(1);
181
182 // String kalle2="socketIn ";
183 // System::println(kalle2 + socket + "end socket send");
184
185 return 1;
186 }
187 */
188
189 char *NetWorkTools::recieveHttpData(int socket)
190 {
191 char *inBuffer=(char*)malloc(4097*sizeof(char));
192 char *pointer=(char*)inBuffer;
193 int nReadBytes=-1;
194 int numberOf=0;
195 bool statement=true;
196 int howManyBytes=0;
197
198 String kalle="RecieveStart ";
199 System::println(kalle + socket);
200
201 while (statement)
202 {
203 nReadBytes = recv(socket, pointer, 4096, MSG_NOSIGNAL);
204
205 howManyBytes+=nReadBytes;
206
207 if (nReadBytes > 0 && howManyBytes < 4096)
208 {
209 for ( int i=0; i<nReadBytes ; i++ )
210 {
211 if( pointer[0] == 13 || pointer[0] == 10 )
212 {
213 numberOf++;
214
215 if ( numberOf == 3 )
216 {
217 statement=false;
218 i=nReadBytes;
219 pointer[0]=0;
220 }
221 }
222 else
223 {
224 numberOf=0;
225 }
226
227 pointer++;
228 }
229 }
230 else if (nReadBytes == SOCKET_ERROR)
231 {
232 String kalle="socketRec1 ";
233 System::println(kalle + socket);
234 free(inBuffer);
235 return 0;
236 }
237 else
238 {
239 String kalle="socketRec2 ";
240 System::println(kalle + socket);
241 free(inBuffer);
242 return 0;
243 }
244 }
245
246 String kalle2="RecieveEnd ";
247 System::println(kalle2 + socket);
248 System::println(howManyBytes);
249
250 return inBuffer;
251 }
252
253

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26