高分求一个基于winsock的发送文本信息的程序!
一端client,一端server,连接好之后,可以发送文本信息。求这样一段代码。
不胜感激!!!!
一端client,一端server,连接好之后,可以发送文本信息。求这样一段代码。
不胜感激!!!!
解决方案 »
- 关于MD5算法在MFC中的使用问题,请高手解答!!
- 我在网上找了一段win32项目的创建服务程序的代码,可是我把它转到win32控制台之后,启动的时候就会出错误?
- 编译时出现连接错误,求高手指点(本人菜鸟)
- 100分请教,关于如何取得硬盘的当前温度
- VC中如何控制NUM.CAPS.SCROLLLOCK灯的开关
- 分不多了,请教一个极有难度的问题!
- 如何在VC中搜索系统中已有的文件?
- 有什么教人怎么编一个com的书吗,讲原理的我有
- 高手求救!我在CScrollView的OnDraw()中绘的曲线为什么断断续续?(cqfriend)
- MFC中使用LoadLibrary动态加载dll有个数限制吗?
- 创建实例的简单问题,100分求助,在线急等。
- 如何保存曲线????
CFile f;
f.Open("1.txt",..);
int filesize = f.GetLength();
while(filesize > 0)
{
f.read(buf,1024);
ret = send(s,buf,sizeof(buf),0);
filesize -= ret;
}
客户:
CFile f;
f.Open("1.txt",..);
int ret=filesize;
while(filesize > 0)
{
bytes = recv(s,buf,sizeof(buf),0);
f.write(buf,bytes);
filesize -= bytes;
}
include <stdio.h>
#include "winsock2.h"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);
if (ConnectSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
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( 27015 ); //----------------------
// Connect to server.
if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "Failed to connect.\n" );
WSACleanup();
return;
} //----------------------
// Declare and initialize variables.
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = "Client: Sending data.";
char recvbuf[32] = ""; //----------------------
// Send and receive data.
bytesSent = send( ConnectSocket, sendbuf, strlen(sendbuf), 0 );
printf( "Bytes Sent: %ld\n", bytesSent ); while( bytesRecv == SOCKET_ERROR ) {
bytesRecv = recv( ConnectSocket, recvbuf, 32, 0 );
if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET ) {
printf( "Connection Closed.\n");
break;
}
printf( "Bytes Recv: %ld\n", bytesRecv );
} WSACleanup();
return;
}
#include <stdio.h>
#include "winsock2.h"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 listening for
// incoming connection requests.
SOCKET ListenSocket;
ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ListenSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld\n", WSAGetLastError());
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(27015); if (bind( ListenSocket,
(SOCKADDR*) &service,
sizeof(service)) == SOCKET_ERROR) {
printf("bind() failed.\n");
closesocket(ListenSocket);
return;
} //----------------------
// Listen for incoming connection requests
// on the created socket
if (listen( ListenSocket, 1 ) == SOCKET_ERROR)
printf("Error listening on socket.\n"); //----------------------
// Create a SOCKET for accepting incoming requests.
SOCKET AcceptSocket;
printf("Waiting for client to connect...\n"); //----------------------
// Accept the connection.
while(1) {
AcceptSocket = SOCKET_ERROR;
while( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( ListenSocket, NULL, NULL );
}
printf("Client connected.\n");
ListenSocket = AcceptSocket;
break;
} WSACleanup();
return;
}