АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практична частина. // client.cpp: определяет точку входа для консольного приложения

Читайте также:
  1. I Всеукраїнська науково-практична конференція іноземними мовами.
  2. VІ. Узагальнення і систематизація знань. Практична робота
  3. Б) Змістовна частина тестових завдань.
  4. В итоге если все частицы собрать по правильной и проверенной технологии, получится красивая, эстетичная, экологичная и практичная столешница GraniStone любой формы и размеров.
  5. Вимоги до оформлення звітів з практичних робіт з предмету «Практична робота на ПК»
  6. Всеукраїнська студентська науково-практична конференція
  7. Вступ Основна частина Висновки ПИТАННЯ-
  8. Графічна частина
  9. Графічна частина
  10. Графічна частина курсового коректу
  11. ГРАФІЧНА ЧАСТИНА ПРОЕКТУ
  12. Графічна частина.

// client.cpp: определяет точку входа для консольного приложения.

//

 

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include "winsock2.h"

 

#pragma comment(lib,"Ws2_32.lib"); // библиотека

void main() {

//----------------------

// Initialize Winsock

WSADATA wsaData; //инициализция библиотеки

int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);

if (iResult!= NO_ERROR)

printf("Error at WSAStartup()\n");

 

//----------------------

// Create a SOCKET for connecting to server

SOCKET ConnectSocket;

// ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

ConnectSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

if (ConnectSocket == INVALID_SOCKET) {

printf("Error at socket(): %ld\n", WSAGetLastError());

WSACleanup();

getch();

return;

}

 

//----------------------

// The sockaddr_in structure specifies the address family,

// IP address, and port of the server to be connected to.

sockaddr_in clientService;

clientService.sin_family = AF_INET;

clientService.sin_addr.s_addr = inet_addr("127.0.0.1");

clientService.sin_port = htons(514);

 

//----------------------

// Connect to server.

if (connect(ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService)) == SOCKET_ERROR) {

printf("Failed to connect.\n");

WSACleanup();

getch();

return;

}

 

printf("Connected to server.\n");

 

do {

char sendbuf[512];// = "this is a test";

printf("Enter data>");

scanf("%s",sendbuf);

iResult = send(ConnectSocket, sendbuf, (int)strlen(sendbuf), 0);

if (iResult == SOCKET_ERROR) {

printf("send failed: %d\n", WSAGetLastError());

closesocket(ConnectSocket);

WSACleanup();

return;

}

printf("Bytes Sent: %ld\n", iResult);

}while(iResult);

getch();

WSACleanup();

return;

 

 

// server.cpp: определяет точку входа для консольного приложения.

//

 

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include "winsock2.h"

#pragma comment(lib,"Ws2_32.lib");

 

#define DEFAULT_BUFLEN 512

char recvbuf[DEFAULT_BUFLEN];

 

void main() {

 

//----------------------

// Initialize Winsock

WSADATA wsaData;

int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);

if (iResult!= NO_ERROR)

printf("Error at WSAStartup()\n");

 

printf("Initialize Winsock OK\n");

//----------------------

// Create a SOCKET for listening for

// incoming connection requests.

SOCKET ListenSocket;

// ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

ListenSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

if (ListenSocket == INVALID_SOCKET) {

printf("Error at socket(): %ld\n", WSAGetLastError());

getch();

WSACleanup();

return;

}

 

//----------------------

// The sockaddr_in structure specifies the address family,

// IP address, and port for the socket that is being bound.

sockaddr_in service;

service.sin_family = AF_INET;

service.sin_addr.s_addr = inet_addr("127.0.0.1");

service.sin_port = htons(514);

 

printf("Server Started\n");

if (bind(ListenSocket,

(SOCKADDR*) &service,

sizeof(service)) == SOCKET_ERROR) {

printf("bind() failed.\n");

closesocket(ListenSocket);

getch();

return;

}

 

printf("Bind OK\n");

do{

iResult = recv(/*AcceptSocket*/ListenSocket, recvbuf, DEFAULT_BUFLEN, 0);

if (iResult > 0) {

recvbuf[iResult]=0;

printf("Bytes received: %d\nData: %s\n", iResult,recvbuf);

}

}while (iResult > 0);

 

WSACleanup();

getch();

return;

}

 

 

Результати:

До початку опрерації обміну


Клієнт:

Connected to server.

Enter data>

 

Сервер:

Initialize Winsock OK

Server Started

Bind OK


 

 

Після операції обміну


Клієнт:

Initialize Winsock OK

Server Started

Bind OK

Bytes received: 11

Data: 132/.,masdf

Time: 15 ms

 

Сервер:

Initialize Winsock OK

Server Started

Bind OK

Bytes received: 11

Data: 132/.,masdf


 

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.)