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;


现在要在这个基础上设置一个连接服务器的密码,怎么弄 求详细代码

参考技术A 这不是很简单,加个
在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编程的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程---socket基础

C语言socket网络编程

C语言 UDP socket 简单客户端 编程,急

vs2008和socket编程

C语言socket连接问题!

如何用c语言编写socket套接字