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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 bearsoft 1.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