|
|
| 33. sor: |
33. sor: |
| == A kommunikációs kapcsolatot hogyan zárhatja le a kliens, illetve a szerver oldal? == | | == A kommunikációs kapcsolatot hogyan zárhatja le a kliens, illetve a szerver oldal? == |
|
| |
|
| | | *''int closesocket(SOCKET s)'' rendszerhívás |
| | | *Linux alatt: ''int close(int s)'' |
| ----
| |
| | |
| A kódolást igénylő (6-10) kérdések válaszai, C program formájában.
| |
| | |
| Keretprogram a feladatokhoz:
| |
| | |
| <pre>
| |
| /* az include-ok közül néhány kell csak, de nem tudom, melyikek */
| |
| #include <sys/types.h>
| |
| #include <sys/socket.h>
| |
| #include <netinet/in.h>
| |
| #include <arpa/inet.h>
| |
| #include <stdio.h>
| |
| #include <stdlib.h>
| |
| #include <strings.h>
| |
| #include <unistd.h>
| |
| | |
| int main() { | |
| | |
| /* pár változó a feladatokhoz */
| |
| SOCKET s;
| |
| struct sockaddr_in addr;
| |
| int x;
| |
| char *buffer;
| |
| char message[]="hello";
| |
| char str1[]="spqr";
| |
| char str2[]="k^3";
| |
| char ch='s';
| |
| char *temp;
| |
| | |
| /* elkészítjük a socketet */
| |
| s=socket(PF_INET, SOCK_STREAM, 0);
| |
| if (s<0) {
| |
| printf("socket hiba\n");
| |
| return 1;
| |
| }
| |
| | |
| /* elkészítjük a címet */
| |
| addr.sin_family = AF_INET;
| |
| addr.sin_addr.s_addr = inet_addr("64.233.167.99"); /* a neptun címe :D */
| |
| addr.sin_port = htons(80);
| |
| | |
| /* kapcsolódunk a szerverhez */
| |
| x=connect(s, (struct sockaddr *)&addr, sizeof(addr));
| |
| if (x<0) {
| |
| printf("kapcsolódási hiba\n");
| |
| return 1;
| |
| }
| |
| | |
| | |
| /* Ide kell beszúrni az lejjebb lévő programrészleteket... */
| |
| | |
| | |
| /* Vége */
| |
| closesocket(s);
| |
| return 0;
| |
| }
| |
| </pre>
| |
|
| |
|
| == Írjon C nyelvű kódrészletet, amely az s leíróval reprezentált kliens socketből képes 16 byte adat fogadására! == | | == Írjon C nyelvű kódrészletet, amely az s leíróval reprezentált kliens socketből képes 16 byte adat fogadására! == |