【socket编程】 一个简单的基于TCP连接的客户端、服务端用例
2018-02-07 18:56
971 查看
//客户端::
#include "stdafx.h"
#include <stdio.h>
#include "WinSock2.h"
#pragma comment(lib,"ws2_32.lib")
SOCKET tcp_socket;
SOCKADDR_IN tcpAddr;
const int BufLen = 1024;
char SendBuf[BufLen];
int main(int argc,char* argv[])
{
WSADATA wsd;
long int Addr;
int Port;
if (argc != 3)
{
printf("Usage:%s [<IP> <Port>]\n",argv[0]);
return 0;
}
Addr = inet_addr(argv[1]);
Port = atoi(argv[2]);
WSAStartup(MAKEWORD(2, 2), &wsd);
tcp_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
printf("Running in client mode(TCP)...\n");
tcpAddr.sin_family = AF_INET;
tcpAddr.sin_port = htons(Port);
tcpAddr.sin_addr.s_addr = Addr;
connect(tcp_socket, (LPSOCKADDR)&tcpAddr, sizeof(tcpAddr));
while (1)
{
ZeroMemory(SendBuf, BufLen);
fgets(SendBuf, BufLen, stdin);
//gets_s(SendBuf,BufLen);
//strcpy(SendBuf+strlen(SendBuf),"\n");
send(tcp_socket, SendBuf, BufLen, 0);
}
closesocket(tcp_socket);
WSACleanup(); //释放套接字资源;
return 1;
}
//服务端
#include "stdafx.h"
#include <stdio.h>
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
SOCKET tcp_service_socket = INVALID_SOCKET;
SOCKADDR_IN tcpServiceAddr;
const int BufLen = 1024;
char RecvBuf[BufLen];
SOCKET tcp_client_socket = INVALID_SOCKET;
SOCKADDR_IN tcpClientAddr;
int main()
{
WSADATA wsd;
int Port=8000;
WSAStartup(MAKEWORD(2, 2), &wsd);
tcp_service_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
tcpServiceAddr.sin_family = AF_INET;
tcpServiceAddr.sin_port = htons(Port);
printf("Running in service mode(TCP)...\n");
bind(tcp_service_socket, (LPSOCKADDR)&tcpServiceAddr, sizeof(tcpServiceAddr));
listen(tcp_service_socket, 1);
int size = sizeof(tcpClientAddr);
tcp_client_socket = accept(tcp_service_socket, (sockaddr FAR*)&tcpClientAddr, &size);
while (1)
{
if (tcp_client_socket == INVALID_SOCKET)
{
Sleep(1000);
continue;
}
recv(tcp_client_socket, RecvBuf,BufLen, 0);
printf("Received:%s\n", RecvBuf);
}
closesocket(tcp_client_socket);
closesocket(tcp_service_socket);
WSACleanup(); //释放套接字资源
return 1;
}
原文链接:https://www.cnblogs.com/caixu/archive/2011/01/08/1930914.html
#include "stdafx.h"
#include <stdio.h>
#include "WinSock2.h"
#pragma comment(lib,"ws2_32.lib")
SOCKET tcp_socket;
SOCKADDR_IN tcpAddr;
const int BufLen = 1024;
char SendBuf[BufLen];
int main(int argc,char* argv[])
{
WSADATA wsd;
long int Addr;
int Port;
if (argc != 3)
{
printf("Usage:%s [<IP> <Port>]\n",argv[0]);
return 0;
}
Addr = inet_addr(argv[1]);
Port = atoi(argv[2]);
WSAStartup(MAKEWORD(2, 2), &wsd);
tcp_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
printf("Running in client mode(TCP)...\n");
tcpAddr.sin_family = AF_INET;
tcpAddr.sin_port = htons(Port);
tcpAddr.sin_addr.s_addr = Addr;
connect(tcp_socket, (LPSOCKADDR)&tcpAddr, sizeof(tcpAddr));
while (1)
{
ZeroMemory(SendBuf, BufLen);
fgets(SendBuf, BufLen, stdin);
//gets_s(SendBuf,BufLen);
//strcpy(SendBuf+strlen(SendBuf),"\n");
send(tcp_socket, SendBuf, BufLen, 0);
}
closesocket(tcp_socket);
WSACleanup(); //释放套接字资源;
return 1;
}
//服务端
#include "stdafx.h"
#include <stdio.h>
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
SOCKET tcp_service_socket = INVALID_SOCKET;
SOCKADDR_IN tcpServiceAddr;
const int BufLen = 1024;
char RecvBuf[BufLen];
SOCKET tcp_client_socket = INVALID_SOCKET;
SOCKADDR_IN tcpClientAddr;
int main()
{
WSADATA wsd;
int Port=8000;
WSAStartup(MAKEWORD(2, 2), &wsd);
tcp_service_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
tcpServiceAddr.sin_family = AF_INET;
tcpServiceAddr.sin_port = htons(Port);
printf("Running in service mode(TCP)...\n");
bind(tcp_service_socket, (LPSOCKADDR)&tcpServiceAddr, sizeof(tcpServiceAddr));
listen(tcp_service_socket, 1);
int size = sizeof(tcpClientAddr);
tcp_client_socket = accept(tcp_service_socket, (sockaddr FAR*)&tcpClientAddr, &size);
while (1)
{
if (tcp_client_socket == INVALID_SOCKET)
{
Sleep(1000);
continue;
}
recv(tcp_client_socket, RecvBuf,BufLen, 0);
printf("Received:%s\n", RecvBuf);
}
closesocket(tcp_client_socket);
closesocket(tcp_service_socket);
WSACleanup(); //释放套接字资源
return 1;
}
原文链接:https://www.cnblogs.com/caixu/archive/2011/01/08/1930914.html
相关文章推荐
- 【socket编程】一个简单的基于TCP的客户/服务端例子(vs2008)
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- Socket编程简单实现服务端客户端连接
- VC面向对象的方式 写一个基于TCP的 客户端服务端程序 (SOCKET)
- 【socket编程】一个简单的基于UDP的客户/服务端例子(vs2008)
- 连接主机Java网络编程(一)- 一个简单的服务端/客户端应用程序
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- VC面向对象的方式 写一个基于TCP的 客户端服务端程序 (SOCKET)
- Linux Socket编程:基于TCP/IP的客户端与服务端通讯实例
- 基于Socket的TCP长连接(服务端Java+客户端Android),Service配合AIDL实现
- linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
- TCP/TP编程 - 一个简单的Linux下C写的socket服务器客户端程序
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- Socket编程服务端和客户端互相通信,实现简单的聊天
- python socket编程之客户端和服务端简单交互
- 【转】TCP Socket编程-客户端和服务端双向通信
- C# Socket TCP 编程,客户端与服务端连接,发送字符串,文件
- (一)linux C语言TCP服务端/客户端简单编程步骤
- 一个简单的基于node.js的TCP服务器和基于C++的TCP客户端通信示例程序
- 基于Socket编程实现一个简单的Web服务器