C语言socket编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言socket编程相关的知识,希望对你有一定的参考价值。
客户端程序:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#define PORT 3490 /* 客户机连接远程主机的端口*/
#define MAXDATASIZE 100 /* 每次可以接收的最大字节*/
int _tmain(int argc, _TCHAR* argv[])
WORD wVersionRequested;
WSADATA wsaData;
int err = 0 ,rval = 0 ;
SOCKET fd;
struct sockaddr_in servaddr;
struct hostent* hp;
char buf[1024] = "";
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
return -1;
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
printf("Can not create socket!");
exit(2);
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.S_un.S_addr=inet_addr("172.25.20.182");
memset(servaddr.sin_zero, 0, sizeof(servaddr.sin_zero));
//和服务器创建连接
rval = connect(fd, (sockaddr*)&servaddr, sizeof(servaddr));
if (rval < 0)
//创建连接失败
printf("Can not create connect!");
exit(3);
else
for(;;)
memset(buf, 0, 1024);
printf("Please input a line to server:");
scanf("%s",&buf);
//向服务器发送信息
rval = send(fd, buf, strlen(buf) + 1,0);
if(rval < 0)
printf("Write error!");
if((rval=recv(fd,buf,sizeof(buf),0)<0))
perror("reading stream message");
if(rval==0)
printf("server said:%s\n",buf);
closesocket(fd);
exit(5);
return 0;
现在要在这个基础上设置一个连接服务器的密码,怎么弄 求详细代码
在send前面加个
char password[20]="12345"
printf("please enter the password:");
scanf("%s",importpassword);
if(0==strcmp(password,importpassword))
连接。。。send();
else 退出。或者这里还可以写个循环输入也可
如果需要用户名就麻烦多了。不多说了,求采纳,有问必答本回答被提问者采纳 参考技术B send用户名和密码,然后再服务器判断这段字符串的账号密码是否符合,然后客户端recv,如果recv的字符串是登录成功,才进行下面操作.否则就提示用户名和密码有误.
以上是关于C语言socket编程的主要内容,如果未能解决你的问题,请参考以下文章