当前位置:首页 » 编程语言 » c语言套接字编程教程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言套接字编程教程

发布时间: 2022-03-09 08:48:04

c语言套接字编程实现通信

我知道Linux的,但估计你想要的不是这个。
另:套接字就是 Socket,是网络连接的一种方式,基于TCP、UDP之类的

㈡ 如何用C语言编写一个简单的聊天室程序

这样:

#include <stdlib.h>

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <unistd.h>

#include <netdb.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <arpa/inet.h>

#include <pthread.h>

#define MAXLINE 100;

void *threadsend(void *vargp);

void *threadrecv(void *vargp);

int main()

{

int *clientfdp;

clientfdp = (int *)malloc(sizeof(int));

*clientfdp = socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in serveraddr;

struct hostent *hp;

bzero((char *)&serveraddr,sizeof(serveraddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons(15636);

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

if(connect(*clientfdp,(struct sockaddr *)&serveraddr,sizeof(serveraddr)) < 0){

printf("connect error ");

exit(1);

}

pthread_t tid1,tid2;

printf("connected ");

while(1){

pthread_create(&tid1,NULL,threadsend,clientfdp);

pthread_create(&tid2,NULL,threadrecv,clientfdp);

}

return EXIT_SUCCESS;

}

void *threadsend(void * vargp)

{

//pthread_t tid2;

int connfd = *((int *)vargp);

int idata;

char temp[100];

while(1){

//printf("me: ");

fgets(temp,100,stdin);

send(connfd,temp,100,0);

printf(" client send OK ");

}

printf("client send ");

return NULL;

}

void *threadrecv(void *vargp)

{

char temp[100];

int connfd = *((int *)vargp);

while(1){

int idata = 0;

idata = recv(connfd,temp,100,0);

if(idata > 0){

printf("server : %s ",temp);

}

}

return NULL;

}

(2)c语言套接字编程教程扩展阅读:

注意事项

linux下编译多线程代码时,shell提示找不到 pthread_create函数,原因是 pthread.h不是linux系统默认加载的库文件,应该使用类似如下gcc命令进行编译:

gcc echoserver.c -lpthread -o echoserver

只要注意 -lpthread参数就可以了。

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

可以去这里看看
网上的资源还是很多的
我机器上也有很多
要是需要可以给你参考

http://blog.csdn.net/fengyv/archive/2006/04/12/659980.aspx

http://www.21control.com/RTOS/Linux/200512/RTOS_20051212221308.html

㈣ 自学C语言教程

没有基础可以入门,通过努力可以达到初、中级程序员的程度,但再往上走,就比较困难了。后面需要不少算法、英文和数学知识。
教程的话可以参考下面两本教程:
谭浩强:《C语言程序设计》
李铭城 黄中豪 陈宇芬:《资料结构 C》

英文的话,进入初级之前都不怎么需要。但是进入中级后,需要读一些英文资料。不过现在翻译比较厉害,绝大部分的资料都有翻译。但是要进入高级,就必须要学习英文了,因为最新最核心的资料都是英文的,翻译的往往都会有错误。
另外数学在早期影响不大,但是进入中级后就必须要了。因为估算算法时间复杂度、空间复杂度、图、树等等,都涉及不少数学知识。当然如果只是做简单应用或者驱动的话,这方面要求就不会太高。

最后给一个学习大概的路线图:
入门级的学习,只要能够掌握:代码三大结构(循环、分支、顺序)、流程图、C语言关键字和语法、输入输出、文件操作、套接字操作。就算是初级满级了。
初级程序员:数据结构和算法(排序,查找)、了解软件开发模型(瀑布模型、敏捷模型、原型模型等等)、了解UML、系统常用API、网络通信、编译和SDK环境搭建
中级程序员:设计模式、多线程编程、网络通信(服务器、客户端)、面向对象编程、掌握UML、系统网络/文件/互斥/线程/事件/安全API、STL、相关法律法规、知道一些常用软件架构(MVC等)

㈤ Windows网络编程案例教程的套接字摘要

套接字屏蔽了从应用程序直接访问传输层的复杂性。在日常生活中两个人打电话,那个电话机就可以理解为是通话的接口,只要会用电话机,甭管电话间是如何复杂连接的,通话随时随地可以轻松完成。套接字就像那个电话机,编程者只要掌握了套接字技术(类似电话机的使用方法),那么网络编程(就像打电话)工作就非常简单了。至于套接字与下层的关系,则由操作系统来实现和封装,因此,套接字简化网络编程。

对多数操作系统而言,应用程序和操作系统程序是在不同的保护模式下运行的。应用程序一般不能直接访问操作系统内部的资源,这样可以避免应用程序非法破坏操作系统的运行。为此,操作系统需要提供应用程序编程接口(Application Programming Interface,API)给应用程序,使其能够利用操作系统提供的服务。对于网络操作系统,需要为网络应用程序提供网络编程接口实现网络通信。目前多数操作系统提供了套接字(Socket)接口作为网络编程接口。
Berkeley套接字(BSD套接字)是4.2 BSD Unix操作系统(于1983发布)提供的一套应用程序编程接口,是一个用C语言写成的网络应用程序开发库,主要用于实现网间进程通信。Berkeley套接字后来成为其它现代操作系统参照的事实工业标准。Windows操作系统在后来的BSD4.3版基础上实现了自己的Windows Socket(又称WinSock)套接字编程接口。

㈥ 在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库

需要用到的头文件包含:

#include <winsock2.h>

#include <windows.h>

与Linux环境下socket编程相比,windows环境多了一个步骤:启动或者初始化winsock库

Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本:

Winsock 1:

Windows CE平台支持。

头文件:WinSock.h

库:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数;

头文件:WinSock2.h

库:ws2_32.lib

mswsock.h用于编程扩展,使用时必须链接mswsock.dll

(6)c语言套接字编程教程扩展阅读

winsock库的加载与卸载:

加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

加载成功,返回值为0。

WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节。然而使用时MAKEWORD(2, 2)。高字节与低字节相同~~

LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助我们填充版本信息。有兴趣的可以看看结构体内容,不过基本用不着。

卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快。

㈦ C语言Socket编程问题(互相通信)

客户端与服务器建立连接
客户端调用connect函数时,已经知道服务器的IP地址以及端口号
服务器中accept返回的套接字中,包含客户端的IP地址以及端口号
建立的连接是相互的,所以可以互通消息。

㈧ C语言编写SOCKET基本套接字的使用,出错了```高手指点下```

除了包含头文件还要加入socket库。
加上这一句就行了!
#pragma comment(lib,"WS2_32.lib");

㈨ c语言 多线程套接字编程

你ip的初始值是多少?
有没有重定向过标准输入?
另一个线程是否也阻塞在读标准输入上?

㈩ 关于 c语言 套接字 的 教程或书

应该没有专门讲套接字的书的吧,想深入了解的话请看TCP/IP详解卷一卷二卷三,得有心理准备哦,那内容可是相当的多。